0

我有我需要按某个元素对信息进行排序的 txt 文件。这将是原始文件

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也会自动按字母顺序排列行还是我必须单独做

4

1 回答 1

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])))
于 2013-07-19T15:03:08.520 回答