python - 如何以简单的单行方式打印列表中的元素?

标签 python list

我必须定义一个过程,联合,它接受两个列表作为输入。 它应该将第一个输入列表修改为两个列表的集合并集。我假设第一个列表是一个集合,即它不包含重复的元素。

我已经尝试过了,它有效:

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/

相关文章:

python - GUI无法正常工作

python - 大字符串的某些部分不会被 str.replace() 函数替换

python - 将列表作为 url 值传递给 urlopen

python - 子列表每个位置的正则表达式模式的频率

c# - 使用 TextBox 实时过滤 ListBox

java - java 按最近日期从列表中检索数据

带有网络摄像头的 Python 2.7 CV2 和 Tkinter

Python 多处理使 docker 容器崩溃

Python 列表理解条件过滤器语法

javascript - 如何迭代对象数组并将结果显示在列表中?