3

我只是有一个问题。如何在没有 lambda 的情况下使用抽象函数?

说我有两个清单

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

如果我想打印所有出现在 A 和 B 中的元素,

与 lambda:

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

没有 lambda 怎么办?

我的意思是我只是使用辅助函数而不是 lambda

4

3 回答 3

5

你如何得到两组的交集?如果你使用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

如果有重复的风险,我会使用 Counter :

>>> 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 回答