,比如我有數組是這樣的:如何包裝python列表中的每個元素?
['1', '2', '3', '4']
,我需要把它包起來是這樣的:
{'profile': '1', 'profile': '2', 'profile': '3', 'profile': '4'}
嘗試過這樣的事情,但沒有運氣:
result = ['1', '2', '3', '4']
result = {'profile': v for v in result}
,比如我有數組是這樣的:如何包裝python列表中的每個元素?
['1', '2', '3', '4']
,我需要把它包起來是這樣的:
{'profile': '1', 'profile': '2', 'profile': '3', 'profile': '4'}
嘗試過這樣的事情,但沒有運氣:
result = ['1', '2', '3', '4']
result = {'profile': v for v in result}
的構造
{'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')]
沒錯。我編輯了我的答案。 –
字典是不是你正在尋找的,因爲他們不接受重複鍵的結構。
當你做result = {'profile': v for v in result}
你每次迭代覆蓋result['profile']
。
您無法制作帶有重複鍵的字典。但是你可以製作一個元組列表。使用列表推導。見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')]
您可以使用地圖()的函數應用到列表中的每個元素。但是,根據frostnational的評論,你不能在字典中有重複的鍵。如果你想擁有一本字典的每個元素,你可以做這樣的事情(之後,你可以拉從列表中的每個詞典):
>>> 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}]
你不能在字典 – vaultah
@frostnational耶重複鍵,我明白了,但可能以某種方式與其他類型的這種可能? – Kin
@Kirix要做*什麼*?你想在這裏做什麼?一旦你想出瞭如何構建它,你將如何使用這個結構? – jonrsharpe