4

リストのリストに各要素が隣接する要素よりも大きいかどうかを計算する最も「pythonic」な方法は何ですか? 例えば

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

各リスト (より大きなリスト内) の最初の要素が 2 番目の要素より大きいかどうかを確認したい。したがって、最初の項目については、3.1 < 3.13 であるため false です。2番目と3番目の項目は真です。

私は間違いなく for ループを使用できますが、別のアプローチを見たいと思っています。ありがとう。

4

3 に答える 3

8

パターンマッチングとリスト理解:

[x > y for x, y in a]
于 2013-09-13T05:51:40.650 に答える
4

これはブール値のリストを返します:

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

すべての値が True の場合に True を返し、それ以外の場合は False を返したい場合:

all([x[0] > x[1] for x in a])
于 2013-09-13T05:50:56.100 に答える
3
>>> 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]
于 2013-09-13T05:53:03.060 に答える