これはすでに質問されているように感じますが、質問に対する回答が私のコードではうまくいきませんでした。
最初のリスト [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)
助けてくれてありがとう。