#python
Вопрос:
У меня есть этот список:
[‘79.9’, ‘79.9’, ‘79.9’, ‘79.9’, ‘103.2’, ‘103.2’]
Я хочу заменить элементы списка соответствующим значением из этого словаря:
ValueDict = {
"243": "0",
"219.70000000000002": "1",
"196.4": "2",
"173.1": "3",
"149.79999999999998": "4",
"126.5": "5",
"103.2": "6",
"79.9": "7",
"56.59999999999999": "8",
"33.3": "9",
"10": "10",
}
Таким образом, результатом будет список, подобный этому:
[7, 7, 7, 7, 6, 6]
Как я могу это сделать?
Комментарии:
1. Что вы уже пробовали / исследовали; и с какой проблемой вы сталкиваетесь?
2. Знакомы ли вы с пониманием списков и поиском значения в словаре?
3.
for i in range(len(list)): list_key = list[i] n list[i] = ValueDict[list_key]
Ответ №1:
final_list = [ValueDict[i] for i in your_list if i in ValueDict]
Ответ №2:
Используйте enumerate
для добавления счетчика в список, затем проверьте, есть ли элемент в словаре, и вызовите значение
for i,j in enumerate(l):
if j in ValueDict:
l[i]=ValueDict[j]
print(l)
Выход:
['7', '7', '7', '7', '6', '6']
Ответ №3:
Вы могли бы сделать это с пониманием списка.
final_list = [ValueDict[value] for value in my_list]
Ответ №4:
a = ['79.9', '79.9', '79.9', '79.9', '103.2', '103.2']
b = {
"243": "0",
"219.70000000000002": "1",
"196.4": "2",
"173.1": "3",
"149.79999999999998": "4",
"126.5": "5",
"103.2": "6",
"79.9": "7",
"56.59999999999999": "8",
"33.3": "9",
"10": "10",
}
c = [b.get(i, i)for i in a]
c
['7', '7', '7', '7', '6', '6']
Ответ №5:
Это должно сработать:
[int(ValueDict[x]) for x in list1]
[7, 7, 7, 7, 6, 6]
🙂
Ответ №6:
что-то вроде приведенного ниже
lst = ['79.9', '79.9', '79.9', '79.9', '103.2', '103.2']
ValueDict = {
"243": "0",
"219.70000000000002": "1",
"196.4": "2",
"173.1": "3",
"149.79999999999998": "4",
"126.5": "5",
"103.2": "6",
"79.9": "7",
"56.59999999999999": "8",
"33.3": "9",
"10": "10",
}
new_lst = [ValueDict.get(x,'-1') for x in lst]
print(new_lst)
Комментарии:
1. Это может привести к ошибке, если значение отсутствует в словаре
2. В зависимости от потребностей это может быть лучше, чем возвращать неполный результирующий список.