У меня есть словарь Python, мне нужно обновить значение словаря списком в соответствии с существующим ключом.
существующий словарь
zone = {
'a':11,
'b':22,
'c':12
}
Новый список
list_ = (10, 44, 55)
Мне нужно обновить этот словарь, используя этот список
Мне нужен такой словарь:
zone = {
'a':10,
'b':44,
'c':55
}
Я использую неупорядоченный словарь в python 3.4.
@ZahidUanNabi Как узнать, какое значение в кортеже соответствует какому ключу в словаре?
Тогда как вы планируете сопоставлять значения из списка с ключами словаря?
Мне нужно обновить первый элемент списка до первого значения ключа, пока...
@ZahidUanNabi Если вы используете неупорядоченные словари, не существует такого понятия, как «первое значение ключа». Вернее, первое значение ключа (возвращаемое, например, zone.keys()) будет фактически случайным. Обойти это невозможно, если только вы не сможете реорганизовать код, чтобы определить zone как OrderedDict или что-то подобное. Если вы хотите назначить клавиши в алфавитном (или каком-либо другом) порядке, это выполнимо, но мы не знаем, пытаетесь ли вы это сделать, если вы не скажете об этом.






В принципе, словарь не имеет порядка. Итак, Вы не можете установить последовательно без стандарта заказа. Но вы делаете это, если хотите установить порядок ключей словаря. Пожалуйста, обратитесь, как показано ниже:
zone = {'b':22, 'a':11, 'c':12}
data = (10, 44, 55)
z_ordered = list(zone.keys())
z_ordered.sort()
for index in range(len(z_ordered)):
zone[z_ordered[index]] = data[index]
Вы можете получить ключи из зоны и zip ее со списком и преобразовать результат в dict
zone = {'a':11, 'b':22, 'c':12 }
list_ = [10, 44, 55]
zone = dict(zip((*zone,), list_))
#{'a': 10, 'b': 44, 'c': 55}
Вы пользуетесь упорядоченным словарем? (Python 3.7 или специальный тип)