gpt4 book ai didi

python - 比较 2 个列表并打印第二个列表的元素(如果它存在于第一个列表中),但不使用 2 个 for 循环

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:28 25 4
gpt4 key购买 nike

我必须比较 2 个列表,如果列表 a 的元素存在于列表 b 中,则列表 b 的元素是打印。

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

ans = [1, 1, 1, 3, 2, 2, 2, 1, 1, 1, 3]

我可能会通过使用 2 个 for 循环得到答案,例如:

for a_ in a:
for b_ in b:
if a_ == b_:
print b_

op: 1 1 1 3 2 2 2 1 1 1 3

但我不想使用 2 个 for 循环。我怎样才能用一个循环做到这一点?

最佳答案

使用collections.Counter 为您计数:

from collections import Counter
c = Counter(b)
ans = []
for x in a:
ans += [x]*c.get(x,0)

关于python - 比较 2 个列表并打印第二个列表的元素(如果它存在于第一个列表中),但不使用 2 个 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com