2017-08-16 59 views
0

我有一個用Python創建的帶有循環的列表,我想將此列表中的每個項目分配爲一個值。聽起來很簡單,但我需要創建與mu列表中相同數量的字典。創建一個列表,然後將項目作爲字典中的值使用

arr_temp = [] 
for i in range(random.randrange(1,len(findings_list))): 
    rand_item = random.choice(findings_list) 
    arr_temp.append(rand_item) 
# ['Lymph nodes', 'Calcifications US'] 

這樣做後,我需要創建2個字典有「名」和列表項的值的鍵名 所以在這種情況下,我想有這樣的事情

dict1 = {"name": 'Lymph nodes'} 
dict2 = {"name": 'Calcifications US'} 

而且如果你能提出任何有效的方式來增加字典與dict鍵的排列,所以它看起來像

...findings: [{"name": 'Lymph nodes'}, 
       {"name": 'Calcifications US'}] 

我真的很感激。謝謝!

+0

它總是在列表中的兩個項目,或是可變數量的項目? –

+0

這是字典的長度。 – Adi219

回答

2
{'findings': [{"name":x} for x in arr_tmp]} 
+0

太棒了,謝謝!花這麼多時間在這樣一個簡單的解決方案上。 –

+0

儘管此代碼可能會回答這個問題,但提供有關如何解決問題和/或爲什麼解決問題的其他上下文會提高答案的長期價值。 – TemporalWolf

2
my_list = ['Lymph nodes', 'Calcifications US'] 
[{'name': v} for v in my_list] 
[{'name': 'Lymph nodes'}, {'name': 'Calcifications US'}] 
+0

非常感謝!幫助我更好地理解列表理解與詞典的結合。 –

+0

儘管此代碼可能會回答問題,但提供有關如何解決問題和/或解決問題原因的其他上下文會提高答案的長期價值。 – TemporalWolf

0
String = "" 

for i in range(1, len(arr_temp) + 1): 
    String += "dict" + str(i) + " = " + {/"name/": '" + str(arr_temp[i - 1]) + "'}\n' 

exec(String) 

知道,它的令人難以接受的使用execeval,但我只是回答這個問題。如果OP想要使用它,這是她的選擇。

+0

謝謝,但我的壞 - 我不需要每次重命名它,只是想突出分別創建的字符數。 –

相關問題