1

重複の可能性:
2つのリストから差を取得します。Python

私は2つのリストを持っています

rt = [1,2,3]
dp = [1,2]

リストの要素ではないrtリストでそれを見つけるための最もPython的な方法は何ですか?3dp

4

6 に答える 6

7
>>> rt = [1,2,3]
>>> dp = [1,2]

セットを使用できます。

>>> set(rt) - set(dp)
set([3])

またはリスト内包表記:

>>> [x for x in rt if x not in dp]
>>> [3]

編集:jamylakは、メンバーシップルックアップの効率を改善するためにセットを使用できると指摘しました:

>>> dp_set = set(dp)
>>> [x for x in rt if x not in dp_set]
>>> [3]
于 2012-07-10T04:34:18.873 に答える
3

これらのいずれかが機能します:

set(rt).difference(set(dp))

また

[i for i in rt if i not in dp]

また

set(rt) - set(dp)
于 2012-07-10T04:40:02.757 に答える
3

それらが両方のセットである場合、これを行うことができます:

set(rt) - set(dp)
于 2012-07-10T04:34:39.943 に答える
2

あなたはおそらくこれらの1つを探しています:

>>> rt = [1,2,3]
>>> dp = [1,2]
>>> set(rt).issubset(dp)
False
>>> 3 in dp
False
于 2012-07-10T04:32:17.400 に答える
1

セット減算が必要なようです。

>>> rt = [1,2,3]
>>> dp = [1,2]
>>> set(rt) - set(dp)
set([3])
于 2012-07-10T04:36:00.253 に答える
0

あなたが望むものの一種。rtの各要素をdpと照合したいということですか?

for num in rt:
    if num in dp:
        print(num, 'is in dp!')
    else:
        print(num, 'is not in dp!')
于 2012-07-10T04:33:50.123 に答える