1

アイテムのリストと一致する場合、リストの T/F のリストを返すエレガントな方法は何ですか?

例えば:

[1,3,5,4]
in
[4,3,7,5,8]

戻り値:

[True, True, False, True, False]
4

3 に答える 3

4

セットのメンバーシップのテストは O(1) ですが、リストのメンバーシップのテストは O(n) です。そのため (特に大きなリストの場合) firstlist、メンバーシップをテストする前にセットに変換する必要があります。

firstset = set(firstlist)
[(v in firstset) for v in otherlist]
于 2012-10-27T15:24:00.297 に答える
3

リスト内包表記を使用: -

>>> list1 = [4, 3, 7, 5, 8]
>>> list2 = [1, 3, 5, 4]
>>> new_list = [elem in list2 for elem in list1]
>>> new_list
[True, True, False, True, False]
>>> 
于 2012-10-27T15:23:06.333 に答える
2

リスト内包表記を使用すると、次のようになります。

[(v in firstlist) for v in otherlist]
于 2012-10-27T15:22:18.410 に答える