이미 질문을 받았지만 질문에 대한 응답이 내 코드에서 작동하지 않았습니다.Python : 알파벳 순으로 목록 목록 정렬/그룹화
목록의 첫 번째 목록 [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)
도움 주셔서 감사합니다.
당신의 예가 저에게 잘 맞고 정렬되어 있습니다. – badzil
당신은 또한 단지 : key = lambda x : x [2 :]'를 당신의 정렬 키로 사용할 수 있습니다. – mgilson