2014-04-22 94 views
0

,比如我有數組是這樣的:如何包裝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} 
+4

你不能在字典 – vaultah

+0

@frostnational耶重複鍵,我明白了,但可能以某種方式與其他類型的這種可能? – Kin

+0

@Kirix要做*什麼*?你想在這裏做什麼?一旦你想出瞭如何構建它,你將如何使用這個結構? – jonrsharpe

回答

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')] 
+0

沒錯。我編輯了我的答案。 –

0

字典是不是你正在尋找的,因爲他們不接受重複鍵的結構。

當你做result = {'profile': v for v in result}你每次迭代覆蓋result['profile']

0

您可以使用地圖()的函數應用到列表中的每個元素。但是,根據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}] 
相關問題