【发布时间】:2017-11-10 13:05:11
【问题描述】:
我有一个简单的脚本,它接受任意数量的列表,包含任意数量的项目。我需要遍历这些列表并显示出现在多个列表中的值,这是我目前所拥有的:
def lists(*usrin):
# STRINGS IN MULTIPLE LISTS
repeat_strings = set()
for a, b in itertools.combinations(usrin, 2):
repeat_strings.update(set(a).intersection(b))
print(', ' .join(repeat_strings))
作为用户,如果我向函数传递以下参数:
lists(['g', 'gh', 'ghj', 'g'], ['j', 'ju', 'gh', 'gk', 'gn'], ['gn'])
我希望得到:
gn, gh
作为输出,但是我得到:
gh
gh
gn, gh
我不确定前两个“gh”是从哪里来的。
如果我添加另一个列表,则函数调用如下所示:
lists(['g', 'gh', 'ghj', 'g'], ['j', 'ju', 'gh', 'gk', 'gn'], ['gn'], ['g', 'gk'])
我希望得到:
g, gn, gk, gh
而是得到:
gh
gh
g, gh
g, gn, gh
g, gn, gk, gh
g, gn, gk, gh
这让我觉得我误解了我所做的 for 循环,谁能解释我做错了什么?
【问题讨论】:
标签: arrays python-3.x list for-loop