如何在python中将数组转换为dict

时间:2014-09-30 04:34:54

标签: python

现在,我想将数组转换为这样的字典:

dict = {'item0': arr[0], 'item1': arr[1], 'item2': arr[2]...}

如何在python中优雅地解决这个问题?

7 个答案:

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