繁体   English   中英

大多数“pythonic”方式来检查列表的子列表的排序?

[英]Most “pythonic” way to check ordering of sub lists of a list?

如果列表列表中的每个元素都大于其neigbbour,那么计算最“pythonic”的方法是什么? 例如

a = [[3.1, 3.13], [3.14, 3.12], [3.12, 3.1]] 

我想看看每个列表中的第一个元素(在较大列表中)是否大于第二个元素。 所以对于第一项,它的假,因为3.1 <3.13。 第2和第3项是真的。

我当然可以使用for循环,但是希望看到替代方法。 谢谢。

模式匹配和列表理解:

[x > y for x, y in a]

这将返回一个布尔值列表:

[x[0] > x[1] for x in a]

如果你想要返回True,如果所有值都是True,否则返回False:

all([x[0] > x[1] for x in a])
>>> from operator import ge
>>> from itertools import starmap
>>> a = [[3.1, 3.13], [3.14, 3.12], [3.12, 3.1]]
>>> list(starmap(ge, a))
[False, True, True]

或者如果您不想导入starmap

>>> map(ge, *zip(*a))
[False, True, True]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM