现在,我想将数组转换为这样的字典:
dict = {'item0': arr[0], 'item1': arr[1], 'item2': arr[2]...}
如何在python中优雅地解决这个问题?
答案 0 :(得分:11)
您可以使用enumerate
和词典理解:
>>> arr = ["aa", "bb", "cc"]
>>> {'item{}'.format(i): x for i,x in enumerate(arr)}
{'item2': 'cc', 'item0': 'aa', 'item1': 'bb'}
答案 1 :(得分:2)
假设我们有一个int
s列表:
我们可以使用词典理解
>>> l = [3, 2, 4, 5, 7, 9, 0, 9]
>>> d = {"item" + str(k): l[k] for k in range(len(l))}
>>> d
{'item5': 9, 'item4': 7, 'item7': 9, 'item6': 0, 'item1': 2, 'item0': 3, 'item3': 5, 'item2': 4}
答案 2 :(得分:1)
simpleArray = [ 2, 54, 32 ]
simpleDict = dict()
for index,item in enumerate(simpleArray):
simpleDict["item{0}".format(index)] = item
print(simpleDict)
好的,第一行是输入,第二行是空字典。我们会即时填写。
现在我们需要迭代,但是在C中的正常迭代被认为是非Pythonic。枚举将从数组中提供索引和我们需要的项。请参阅:Accessing the index in Python 'for' loops。
因此,在每次迭代中,我们将从数组中获取一个项目,并在字典中插入括号中字符串的键。我不使用格式,因为不鼓励使用%。见这里:Python string formatting: % vs. .format。
最后我们将打印。使用打印作为功能以获得更多兼容性。
答案 3 :(得分:1)
你可以使用词典理解 例如。
>>> x = [1,2,3]
>>> {'item'+str(i):v for i, v in enumerate(x)}
>>> {'item2': 3, 'item0': 1, 'item1': 2}
答案 4 :(得分:1)
使用词典理解:Python Dictionary Comprehension
所以它看起来像是:
d = {"item%s" % index: value for (index, value) in enumerate(arr)}
请注意使用enumerate来给出列表中每个值的索引。
答案 5 :(得分:1)
您还可以使用dict()
构建词典。
d = dict(('item{}'.format(i), arr[i]) for i in xrange(len(arr)))
答案 6 :(得分:0)
使用 map
,这可以解决为:
a = [1, 2, 3]
d = list(map(lambda x: {f"item{x[0]}":x[1]}, enumerate(a)))
结果是:
[{'item0': 1}, {'item1': 2}, {'item2': 3}]