我必须定义一个过程,联合,它接受两个列表作为输入。 它应该将第一个输入列表修改为两个列表的集合并集。我假设第一个列表是一个集合,即它不包含重复的元素。
我已经尝试过了,它有效:
def union(a, b):
a.append(b)
for item in b:
if item in a:
a.remove(item)
当我尝试测试它时,这是输出:
a = [1,2,3] b = [2,4,6] 联盟(a,b) 打印一个
我应该收到的输出用于练习: [1,2,3,4,6]
我收到的输出是: [1, 3, [2, 4, 6]]
如何打印输出以匹配所需的输出?还是说是同一个东西?
最佳答案
为什么不使用集合
?
def union(a, b):
return list(set(a + b))
这不会修改您的列表,但集合没有排序,因此您不能依赖元素的顺序。
如果您尝试在代码中查找错误,可以像这样修改它:
def union(a, b):
for item in b:
if item in a:
a.remove(item)
a.extend(b)
如果你确实想向a添加新项目,你可以使用这个:
def union(a, b):
a.extend([x for x in b if x not in a])
关于python - 如何以简单的单行方式打印列表中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17898312/