Python将顺序值数组添加到dict

时间:2014-09-19 04:36:40

标签: python list python-2.7 dictionary

例如我有dict python

dict = {'a': '1', 'b': '2', 'c': '3'}

和数组

arr = ['4', '5', '6']

我想将顺序值数组添加到dict

dict1 = {'a': '4', 'b': '5', 'c': '6'}

请提出具体的解决方案。

4 个答案:

答案 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'}