Python 如何获取文件中每行的第一个元素并对其进行排序?
我有一个包含以下内容的file.txt文件:Python 如何获取文件中每行的第一个元素并对其进行排序?,python,python-3.x,Python,Python 3.x,我有一个包含以下内容的file.txt文件: ('sim', 'sim','03-01-19', 'sim','Fechada', 'sim') ('ano', 'a', '02-01-19', 'a', 'Aberta', 'a') ('pano', 's', '01-01-19', 's', 'Aberta', 's') 我想这样分类: ('ano', 'a', '02-01-19', 'a', 'Aberta', 'a') ('pano', 's', '01-01-19', 's'
('sim', 'sim','03-01-19', 'sim','Fechada', 'sim')
('ano', 'a', '02-01-19', 'a', 'Aberta', 'a')
('pano', 's', '01-01-19', 's', 'Aberta', 's')
我想这样分类:
('ano', 'a', '02-01-19', 'a', 'Aberta', 'a')
('pano', 's', '01-01-19', 's', 'Aberta', 's')
('sim', 'sim','03-01-19', 'sim','Fechada', 'sim')
('pano', 's', '01-01-19', 's', 'Aberta', 's')
('ano', 'a', '02-01-19', 'a', 'Aberta', 'a')
('sim', 'sim','03-01-19', 'sim','Fechada', 'sim')
也可以按日期进行排序,如下所示:
('ano', 'a', '02-01-19', 'a', 'Aberta', 'a')
('pano', 's', '01-01-19', 's', 'Aberta', 's')
('sim', 'sim','03-01-19', 'sim','Fechada', 'sim')
('pano', 's', '01-01-19', 's', 'Aberta', 's')
('ano', 'a', '02-01-19', 'a', 'Aberta', 'a')
('sim', 'sim','03-01-19', 'sim','Fechada', 'sim')
如果有人能帮我,我将非常感激:)
感谢我的英语不好
def ordenar():
ficheirocompra = open("compras.txt","r")
lines = ficheirocompra.readlines()
for line in lines:
a = line[0:line.find(',')]
print(a.sort())
ficheirocompra.close()
如果您已经有一个元组列表,并且希望按每个元组的第一项进行排序,则
.sorted
或.sort
将完成此工作。请记住,.sort
对列表本身进行排序,而.sorted
返回一个排序列表
>>> L = [('sim', 'sim','03-01-19', 'sim','Fechada', 'sim'),
... ('ano', 'a', '12-01-19', 'a', 'Aberta', 'a'),
... ('zoom', 'z', '05-01-19', 'z', 'Yo', 'z'),
... ('pano', 'zz', '01-01-19', 's', 'Aberta', 's')]
>>> L_namesort = sorted(L)
>>> print(L_namesort)
[('ano', 'a', '12-01-19', 'a', 'Aberta', 'a'), ('pano', 'zz', '01-01-19', 's', 'Aberta', 's'), ('sim', 'sim', '03-01-19', 'sim', 'Fechada', 'sim'), ('zoom', 'z', '05-01-19', 'z', 'Yo', 'z')]
另一种方法是使用键
参数并选择要排序的项目
def mysortingkey(item):
return item[0]
L = [('sim', 'sim','03-01-19', 'sim','Fechada', 'sim'),
('ano', 'a', '12-01-19', 'a', 'Aberta', 'a'),
('zoom', 'z', '05-01-19', 'z', 'Yo', 'z'),
('pano', 'zz', '01-01-19', 's', 'Aberta', 's')]
L_namesort = sorted(L, key=mysortingkey)
print(L_namesort)
您可以使用相同的策略按日期排序,尽管这意味着将日期字符串转换为实际的datetime
date。否则,像“12-25-18”这样的日期将被视为“晚于”01-03-19
可能重复: