Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取文件中每行的第一个元素并对其进行排序?_Python_Python 3.x - Fatal编程技术网

Python 如何获取文件中每行的第一个元素并对其进行排序?

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'

我有一个包含以下内容的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', '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

可能重复: