リスト内のリストを新しいリストに削除するにはどうすればよいですか?したがって、aからbを減算して、新しいリストcを作成しますか?
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,]
b = [3, 4, 5, 6]
c = []?
リスト内のリストを新しいリストに削除するにはどうすればよいですか?したがって、aからbを減算して、新しいリストcを作成しますか?
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,]
b = [3, 4, 5, 6]
c = []?
リストをセットに変換し、セットの差を取ります。
c = list(set(a).difference(set(b))
注文を維持し、セットメンバーシップの使用をスピードアップするには:
bs = set(b)
c = [x for x in a if x not in bs]
または、リスト内包表記を使用します。
c = [x for x in a if x not in b]
何をしているのかによっては、そもそもセットを使用したほうがよい場合があります。
>>> a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, }
>>> b = {3, 4, 5, 6}
>>> a
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b
set([3, 4, 5, 6])
>>> a.difference(b)
set([0, 1, 2, 7, 8, 9])
collections.Counter
複数の繰り返しをカウントする場合は、もう1つの便利な標準タイプです。
>>> from collections import Counter as C
>>> a = C([1,1,1,2,2,3,4])
>>> b = C([1,4,5])
>>> a - b
Counter({1: 2, 2: 2, 3: 1})