例如我有这样的数组:
['1', '2', '3', '4']
我需要像这样包装它:
{'profile': '1', 'profile': '2', 'profile': '3', 'profile': '4'}
尝试过这样的事情,但没有运气:
result = ['1', '2', '3', '4']
result = {'profile': v for v in result}
答案 0 :(得分:2)
构造
{'profile': '1', 'profile': '2', 'profile': '3', 'profile': '4'}
与Python等效于
{'profile': '4'}
因为,如上所述,字典不能包含重复的键。因此,字典可能不是您正在寻找的。
您可以使用 list comprehension ,如
>>> [('profile', x) for x in a]
[('profile', '1'), ('profile', '2'), ('profile', '3'), ('profile', '4')]
答案 1 :(得分:0)
字典不是您要查找的结构,因为它们不接受重复键。
执行result = {'profile': v for v in result}
时,每次迭代都会覆盖result['profile']
。
答案 2 :(得分:0)
您无法制作包含重复键的字典。但是你可以列出元组列表。使用列表推导。见https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
[('profile', i) for i in ['1','2','3','4']]
结果
[('profile', '1'), ('profile', '2'), ('profile', '3'), ('profile', '4')]
答案 3 :(得分:0)
您可以使用map()将函数应用于列表的每个元素。但是,正如霜冻评论,你不能在字典中有重复的键。如果你想为每个元素都有一个字典,你可以这样做(之后,你可以从列表中提取每个字典):
>>> def wrap(x): return {"profile": x}
>>> map(wrap, range(1,10))
[{'profile': 1}, {'profile': 2}, {'profile': 3}, {'profile': 4}, {'profile': 5},
{'profile': 6}, {'profile': 7}, {'profile': 8}, {'profile': 9}]