그래서 목록 내에 여러 개의 목록이있는 파일로 작업하고 있습니다. 나는 총 참가자 수를 상위 5 개 주와 5 개 주로 정렬하려고합니다. 이것은 내가 찾고 있지만 참가자의 총 수에 가장 큰으로 분류되지 않는 거의 무엇을하는 방식으로 파일을 인쇄중첩 목록에서 상위 5 개 및 하위 5 개 목록 만 가져 오는 방법은 무엇입니까?
State Total #,% passed,%female
Wyoming 0,0,0
New Hampshire 101,76,12
Utah 103,54,4
Mass 1067,67,18
Montana 11,55,0
Iowa 118,80,9
Alabama 126,79,17
Georgia 1261,51,18
Florida 1521,44,20
Illinois 1559,69,13
New Jersey 1582,74,15
Maine 161,67,16
: 이런 식으로 뭔가를 인쇄
import csv
from operator import itemgetter #not really using this right now
crimefile = open('APExam.txt', 'r')
reader = csv.reader(crimefile)
allRows = [row for row in reader]
L = sorted(allRows,key=lambda x: x[1])
for item in L:
print item[0],','.join(map(str,item[1:]))
최저; 첫 번째 요소를보고 정렬됩니다. 다음과 같이 변경하려면 어떻게해야합니까?
New Jersey 1582,74,15
Illinois 1559,69,13
Florida 1521,44,20
Georgia 1261,51,18
Etc...
처음으로 질문을 올리면 도움이 될 것입니다. :) 또한, 나는 "5, 4, 7 6 ... 6"과 같은 .sort() 또는 find() 함수 또는 "in"연산자를 사용하지 않으려 고합니다.
편집 *는 : L 변경하여
L = sorted(allRows,key=lambda x: int(x[1]),reverse=True)
나는 내림차순으로가는 목록을 어디 지점에 왔은 :
State Total #,% passed,%female
California 4964,76,22
Texas 3979,62,23
New York 1858,69,20
Virginia 1655,60,19
Maryland 1629,66,20
New Jersey 1582,74,15
Illinois 1559,69,13
Florida 1521,44,20
지금 꽤 방법을 알아낼 수 없습니다 이 합계를 기준으로 상위 5 위와 아래 5를 가져 가십시오.