#python #list #dictionary #integer #token
#python #Список #словарь #целое число #токен
Вопрос:
У меня есть список списков, в каждом списке есть только токены.
grade_lists = [['Very good', 'good', 'okay'], ['sufficient', 'bad', 'very bad']]
и этот словарь с key = string
, value = int
month_ids = { 'Very good': 1,
'good': 2,
'okay': 3,
'sufficient': 4,
'bad': 5,
'very bad': 6
}
Могу ли я заменить токены из моего списка списков целыми числами из словаря?
grade_lists = [[1, 2, 3], [4, 5, 6]]
Ответ №1:
Вы могли бы сделать это с помощью понимания списка:
grade_lists = [['Very good', 'good', 'okay'], ['sufficient', 'bad', 'very bad']]
month_ids = {'Very good': 1, 'good': 2, 'okay': 3, 'sufficient': 4, 'bad': 5, 'very bad': 6}
grade_lists2 = [[month_ids[grade] for grade in sublist] for sublist in grade_lists]
print(grade_lists2)
Ответ №2:
Вы можете попробовать перебрать каждый список
temp_list, new_list = [], []
for glist in grade_lists:
temp_list = []
for token in glist:
temp_list.append(month_ids[token])
new_list.append(temp_list)
Вывод:
>>> new_list
[[1, 2, 3], [4, 5, 6]]
Комментарии:
1. Лучше использовать понимание списка, так как использование
append
изменяет размер списка для каждого добавленного элемента, что неэффективно. Для небольших списков, подобных этому, это не существенно, но в любом случае лучше использовать понимание списка.