在Python中对列表中的元组排序
我在想有没有简单的方法可以对Python中的列表里的元组进行排序,比如说我有一个列表:
list01 = ([a,b,c],[b,a,d],[d,e,c],[a,f,d])
如果我对它进行排序,我会得到:
([a,b,c],[a,b,d],[c,d,e],[a,d,f])?
或者甚至:
([a,b,c],[a,b,d],[a,d,f],[c,d,e])
如果这样更简单的话
提前谢谢你们:)
3 个回答
2
就这么简单...
list01 = (['a','b','c'],['b','a','d'],['d','e','c'],['a','f','d'])
print(sorted(map(sorted,list01)))
2
你可以用生成器来代替:
>>> list01 = (['a','b','c'],['b','a','d'],['d','e','c'],['a','f','d'])
>>> tuple((sorted(item) for item in list01))
(['a', 'b', 'c'], ['a', 'b', 'd'], ['c', 'd', 'e'], ['a', 'd', 'f'])
顺便说一下,使用map会更快哦。;)
In [48]: timeit tuple(map(sorted, list01))
100000 loops, best of 3: 3.71 us per loop
In [49]: timeit tuple((sorted(item) for item in list01))
100000 loops, best of 3: 7.26 us per loop
补充一下:就地排序会更快(谢谢Karl的提醒):
In [120]: timeit [item.sort() for item in list01 if False]
1000000 loops, best of 3: 490 ns per loop
6
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用一个叫做“库”的东西时,发现它的某些功能不太好用,或者和他们的代码不兼容。这种情况就像你买了一件新衣服,但发现它和你原来的裤子不搭配一样。
在这种情况下,解决问题的办法通常是查看这个库的文档,看看有没有人遇到过类似的问题,或者有没有解决方案。就像你在找衣服搭配的建议一样,文档里可能会有一些提示和技巧,帮助你更好地使用这个工具。
如果文档没有提供足够的信息,很多时候你可以在网上的社区,比如StackOverflow,发帖询问。这里有很多经验丰富的程序员,他们可能遇到过同样的问题,愿意分享他们的解决办法。
总之,遇到问题时,不要慌张,先查文档,再问社区,通常都能找到解决方案。
>>> list01 = (['a','b','c'],['b','a','d'],['d','e','c'],['a','f','d'])
>>> map(sorted, list01)
[['a', 'b', 'c'], ['a', 'b', 'd'], ['c', 'd', 'e'], ['a', 'd', 'f']]
>>> sorted(map(sorted, list01))
[['a', 'b', 'c'], ['a', 'b', 'd'], ['a', 'd', 'f'], ['c', 'd', 'e']]