Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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_String_Tuples - Fatal编程技术网

Python 有序元组元素

Python 有序元组元素,python,string,tuples,Python,String,Tuples,我有一个包含航班数据的字符串,我想写一个函数,它接收航班代码并返回一个按时间排序的航班代码元组。这可能吗?我已经尝试了很多方法,但似乎都做不到。也许是用字典 "KLM75, Amsterdam, 14:35, 60, 50 AF111, Paris, 14:20, 50, 64 LH333, Frankfurt, 14:10, 112, 203 KLM71, Madrid, 14:55, 120, 100 TAP103, Salvador, 15:20, 174, 210 LH123

我有一个包含航班数据的字符串,我想写一个函数,它接收航班代码并返回一个按时间排序的航班代码元组。这可能吗?我已经尝试了很多方法,但似乎都做不到。也许是用字典

 "KLM75, Amsterdam, 14:35, 60, 50
 AF111, Paris, 14:20, 50, 64
 LH333, Frankfurt, 14:10, 112, 203
 KLM71, Madrid, 14:55, 120, 100
 TAP103, Salvador, 15:20, 174, 210
 LH123, Berlin, 15:10, 115, 210"

 #(CODE, Origin, time, passengers, lugage)

您可以拆分字符串并进行排序,首先使用
'\n'
拆分字符串,然后使用
'、'
拆分字符串,最后您可以根据拆分字符串的第2个元素(即时间)使用
sorted
函数:

>>> t=tuple(i.split(',') for i in s.split('\n'))
>>> sorted(t,key= lambda x : x[2])
[['LH333', ' Frankfurt', ' 14:10', ' 112', ' 203'], ['AF111', ' Paris', ' 14:20', ' 50', ' 64'], ['KLM75', ' Amsterdam', ' 14:35', ' 60', ' 50'], ['KLM71', ' Madrid', ' 14:55', ' 120', ' 100'], ['LH123', ' Berlin', ' 15:10', ' 115', ' 210'], ['TAP103', ' Salvador', ' 15:20', ' 174', ' 210']]
使用换行符对上述代码进行整型拆分,以获取所有行,然后使用sorted对它们进行及时排序。lambda将使用split(',')[2]提供关键ie时间

上面的代码只进行了排序,没有生成元组:如果需要元组:

print(sorted([tuple(x.split(',')) for x in b.split('\n')],key=lambda x:x[2]))
[('LH333', ' Frankfurt', ' 14:10', ' 112', ' 203'), ('AF111', ' Paris', ' 14:20', ' 50', ' 64'), ('KLM75', ' Amsterdam', ' 14:35', ' 60', ' 50'), ('KLM71', ' Madrid', ' 14:55', ' 120', ' 100'), ('LH123', ' Berlin', ' 15:10', ' 115', ' 210'), ('TAP103', ' Salvador', ' 15:20', ' 174', ' 210')]

我尝试过从各种方法开始,将项目拆分为一个列表,弹出元素,但我总是无法继续…您能否提供一个示例输入和预期输出?我很难理解你们所说的“一个按时间排序的飞行代码元组”是什么意思。“各种方法”并不比“许多方法”更具体。
print(sorted([tuple(x.split(',')) for x in b.split('\n')],key=lambda x:x[2]))
[('LH333', ' Frankfurt', ' 14:10', ' 112', ' 203'), ('AF111', ' Paris', ' 14:20', ' 50', ' 64'), ('KLM75', ' Amsterdam', ' 14:35', ' 60', ' 50'), ('KLM71', ' Madrid', ' 14:55', ' 120', ' 100'), ('LH123', ' Berlin', ' 15:10', ' 115', ' 210'), ('TAP103', ' Salvador', ' 15:20', ' 174', ' 210')]