2013-07-19 3 views
0

У меня есть файл txt, который мне нужно отсортировать по информации определенным элементом. это будет оригинальный файлСортировка элементов по элементу списка в python

Wheaton,Will,7 
Parker,Peter,9 
Apple,Adam,1 
Jones,Mike,10 
Potter,Harry,7 

это файл, который будет отсортирован по третьему элементу так, что файл будет читать

Apple,Adam,1 
Wheaton,Will,7 
Potter,Harry,7 
Parker,Peter,9 
Jones,Mike,10 

Я попытался с помощью

allItems = [] 
for i in info: 
    data = i.rstrip('\n').split(',') 
    allItems.append(data) 

allItems.sort(key=lambda x: x[2]) 

, но это Не работает. как я могу организовать элемент списка. Также будет Python автоматически в алфавитном порядке строки или я должен сделать это sepatately

+0

* но ни один не работает *. ** Как ** это не сработало? Каков был результат, который вы получили? –

+0

Вы пробовали 'key = itemgetter (2)' вместо этой лямбда? * 'от оператора import itemgetter' – Brian

+0

Ваша первая попытка (по крайней мере, как указано) переключается с' data' на 'lists' как на сортировку. – chepner

ответ

3

Вы сравниваете строки, так '1' < '10' < < '7''9'. Преобразуйте их в int.

with open('info.txt', 'r') as f: 
     data = [line.split(',') for line in f] 
print(sorted(data, key=lambda x: int(x[2]))) 
+0

Мне это нужно сортировать в файле, который не печатается – derpyherp

+0

Я думаю, вам, возможно, придется прочитать данные, отсортировать их и затем написать. @ Derpyherp – zhangyangyu

+0

как бы я его сортировал, как и раньше? И как бы мне написать его обратно – derpyherp

Смежные вопросы