例如我有dict python
dict = {'a': '1', 'b': '2', 'c': '3'}
和数组
arr = ['4', '5', '6']
我想将顺序值数组添加到dict
dict1 = {'a': '4', 'b': '5', 'c': '6'}
请提出具体的解决方案。
答案 0 :(得分:5)
>>> d = {'a': '1', 'b': '2', 'c': '3'}
>>> arr = ['4', '5', '6']
>>> dict(zip(sorted(d), arr))
{'a': '4', 'c': '6', 'b': '5'}
答案 1 :(得分:3)
您可以使用zip
:
>>> import string
>>> arr = ['4', '5', '6']
>>> # dict(zip(sorted(original_dict), arr))
>>> dict(zip(string.ascii_lowercase, arr))
{'b': '5', 'c': '6', 'a': '4'}
顺便说一句,不要命名变量dict
。它将在类型/函数dict
中构建阴影。
答案 2 :(得分:2)
不确定您要执行的操作,但以下代码段会执行您在问题中的操作。
import os
dict = {'a': '1', 'b': '2', 'c': '3'}
arr = ['4', '5', '6']
dict1 = {}
dictAsList = dict.items()
i = 0
for key in sorted(dict):
try:
dict1[key] = arr[i]
except:
pass
i = i+1
print dict1
答案 3 :(得分:1)
Python词典没有订单。所以我不会在字典中得到顺序的意思。
如果您只想将所有值设置为另一个值,可以这样做。
d = {'a': '1', 'b': '2', 'c': '3'}
arr = ['4', '5', '6']
print dict(zip(d.keys(), arr))
#{'a': '4', 'c': '5', 'b': '6'}
如果您想将值设置为相同的顺序,您可以这样做。(您需要更改数据结构)
from collections import OrderedDict
d = OrderedDict([('a', '1'), ('b', '2'), ('c', '3')])
arr = ['4', '5', '6']
print dict(zip(d.keys(), arr))
#{'a': '4', 'c': '6', 'b': '5'}