我觉得这已经被问过了,但是问题的答案对我的代码不起作用。
我试图根据第一个列表 [2] 按字母顺序对列表列表进行排序,然后在按列表 [3] 排序的匹配条目中,然后是列表 [4] 等等。真实数据更大,每个列表中有更多条目,但举个例子:
list = [
['X_campestris_vesicatoria', 'Bacteria', 'Proteobacteria',
'Gammaproteobacteria', 'Xanthomonadales', 'Xanthomonadaceae', 'Xanthomonas'],
['Pantoea', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria',
'Enterobacteriales', 'Enterobacteriaceae', 'Pantoea'],
['Acidobacterium', 'Bacteria', 'Acidobacteria', 'Acidobacteriales',
'Acidobacteriaceae', 'Granulicella'],
['S_boydii', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria',
'Enterobacteriales', 'Enterobacteriaceae', 'Shigella']]
我尝试了一些类似问题的答案:
taxlist.sort(key = lambda row: (row[2],row[3],row[4],row[5]))
print taxlist
但没有排序发生。
与我尝试时相同:
sorted(taxlist, key=lambda x: (x[2],x[3],x[4],x[5]))
print taxlist
一旦列表排序,我还能使用它还是列表不再可迭代?
import csv
writer = csv.writer(sys.stdout, delimiter="\t")
writer.writerows(taxlist)
谢谢你的帮助。