나는 축구에 관련된 통계를 가지고 있습니다. 플레이어와 각 스탯의 이름을 두 개 이상의 공백으로 나눌 수 있습니다. 나는 야드 지도자를 얻으려고 노력하고 있으므로 4 열 또는 3 열로 정렬해야합니다. 나는 두 가지 오류를 얻을 수Python, sorted() : 세 번째 열의 축구 통계 정렬
abel161 8 77 443.0 5 0 11.7 147.2
Abyss ll 38 145 1158.0 11 6 12.8 55.9
AFFISHAUL 34 33 366.0 2 4 17.8 22.7
Assassin NinjaX 25 35 184.0 0 7 10.3 15.1
aubby57 23 165 839.0 11 0 10.5 75.3
B1U3 S4V10R 26 116 380.0 4 6 6.0 29.2
Bigkle 24 47 149.0 2 4 6.7 32.8
BLKSUP3RSA1YAN 5 52 65.0 3 1 9.9 22.7
Booksack 33 85 477.0 5 5 11.0 29.2
Brandon6154xx 23 106 809.0 8 0 17.6 97.0
budweizerbeast 35 472 1640.0 27 9 6.8 94.5
BulkKiller1 31 455 3012.0 40 5 12.6 182.6
Carnage311 30 369 2349.0 25 6 12.8 158.3
cinemagiic 32 12 -8.0 0 2 -1.3 -0.6
Cmfc bumble bee 20 41 253.0 1 0 12.3 28.9
CMFCplaya 19 78 366.0 4 4 9.5 48.9
:
import re, sys
try:
file = open("TTL.txt", "r")
except IOError:
print "Could Not Open TTL"
sys.exit()
lines = file.readlines()
for line in lines:
line = re.split("\s\s+", line)
def key_fct(lines):
return (float(lines[3]))
srtlines = sorted(lines, key = key_fct, reverse = True)
for line in srtlines:
print line
file.close()
샘플 입력 : 여기
내 코드의 이$./sort.py
Traceback (most recent call last):
File "./sort.py", line 39, in <module>
srtlines = sorted(lines, key = key_fct, reverse=True)
File "./sort.py", line 37, in key_fct
return (float(lines[3]))
ValueError: invalid literal for float(): l
내 파일 목록의 목록 아니지만, 분할하는 경우 각 줄을 정렬하고 세 번째 인덱스로 정렬하려고하면 파일의 이름에 네 번째 문자가 계속 표시됩니다.
for line in lines:
line = re.split("\s\s+", line)
이 목록에 선을 재 할당이 예상되지 않는 :
을했을 :
여기에 문제를 처리하는 다른 방법이있다? 당신의 문제는 정확히 무엇입니까? –
파이썬에서 파일을 작업 할 때는 항상 [with with'statement] (http://www.youtube.com/watch?v=lRaKmobSXF4)를 사용해야합니다. 또한 [csv 모듈] (http://docs.python.org/3.3/library/csv.html)을 사용하면 쉽게 사용할 수 있습니다. –