3

質問があります。ラムダなしで抽象関数を使用するには?

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

a = [1,2,3,4,5]
b = [2,4,6]

AとBの両方に表示されるすべての要素を印刷したい場合、

ラムダで:

def f():
  print reduce (list.__add__ , map (lambda x: filter (lambda y: x == y, b), a))

ラムダなしでそれを行う方法は?

つまり、ラムダの代わりにヘルパー関数を使用しているだけです

4

3 に答える 3

5

2 つの集合の交点をどのように取得しますか? setデータ型を使用する場合は&、ユニオンに使用できます。

print list(set(a) & set(b))
于 2012-11-26T05:22:29.050 に答える
1
a = [1,2,3,4,5]
b = [2,4,6]
ab = []

for i in a:
  if i in b:
    ab.append(i)
print(ab)
于 2012-11-26T05:23:55.837 に答える
0

重複のリスクがある場合は、カウンターを使用します。

>>> a = [1, 2, 2, 3]
>>> b = [2, 2, 3]
>>> from collections import Counter
>>> Counter(a) & Counter(b)
Counter({2: 2, 3: 1})
>>>

>>> list_ = []
>>> c = Counter(a) & Counter(b)
>>> for num, count in c.items():
...     list_.extend([num] * count)
...
>>> list_
[2, 2, 3]
于 2012-11-26T06:26:05.000 に答える