我有一个元组列表,其中每个元组都是一个字符串:
lst1 = [('Lunch, Lisbon, 14:15, 10, 12',), ('Lunch, Paris, 13:10, 14, 06',), ('Dinner, Madrid, 13:50, 18, 10',)]
我的列表可以大于此列表,并且我想按时间(字符串的第3个元素)对其进行排序。我想到将每个元组都列出来,这是我使用的代码:
for element in lst1:
for x in element:
wordlist = x.split(', ')
这给了我这个输出:
['Lunch', 'Lisbon', '14:15', '10', '12']
['Lunch', 'Paris', '13:10', '14', '06']
['Dinner', 'Madrid', '13:50', '18', '10']
因此,现在我只需要对这些列表进行排序,然后将它们按排序顺序放在一起,这样一来,我就拥有相同的东西,即一个元组列表,其中每个元组都是一个字符串。我尝试使用list.sort,但这给了我一个错误。我是python的新手,我不知道如何执行此操作,任何人都可以帮助我吗?
您可以使用一个key
功能
>>> lst1 = [('Lunch, Lisbon, 14:15, 10, 12',), ('Lunch, Paris, 13:10, 14, 06',), ('Dinner, Madrid, 13:50, 18, 10',)]
>>> sorted(lst1, key=lambda x:x[0].split(", ")[2])
[('Lunch, Paris, 13:10, 14, 06',), ('Dinner, Madrid, 13:50, 18, 10',), ('Lunch, Lisbon, 14:15, 10, 12',)]
命名键功能的示例
>>> def key_func(x):
... return x[0].split(", ")[2]
...
>>> key_func(('Lunch, Lisbon, 14:15, 10, 12',)) # test it
'14:15'
>>> sorted(lst1, key=key_func)
[('Lunch, Paris, 13:10, 14, 06',), ('Dinner, Madrid, 13:50, 18, 10',), ('Lunch, Lisbon, 14:15, 10, 12',)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句