2 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
為其中的每個(gè)項(xiàng)目創(chuàng)建變量unique_val不是一個(gè)好主意。與其進(jìn)行硬編碼,不如將所有字典更好地與鍵配合使用,list_1因?yàn)樗梢蕴幚砣我鈹?shù)量的變量。
>>> from collections import defaultdict
>>> dic = defaultdict(list)
>>> nested_list = [['name1',1],['name2',1],['name3',3],['name4',2],['name5',2],['name6',3]]
>>> unique_val = [1,2,3] #better make this a set to get O(1) lookup
>>> for v,k in nested_list:
if k in unique_val:
dic['list_'+str(k)].append(v)
#now access those lists:
>>> dic['list_1']
['name1', 'name2']
>>> dic['list_2']
['name4', 'name5']
>>> dic['list_3']
['name3', 'name6']
如果您有一個(gè)4,unique_val 那么您可能希望list_4成為一個(gè)空列表,這很容易由來(lái)處理defaultdict:
>>> dic['list_4']
[]

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用列表理解:
[[name for name, number in nested_list if number == n] for n in unique_val]
如果您確實(shí)要將其放在單獨(dú)的變量中,則可以執(zhí)行以下操作。
list_1, list_2, list_3 = [[name for name, number in nested_list if number == n] for n in unique_val]
添加回答
舉報(bào)