python - 如何在 python 的单行理解中提取子列表的项目?

标签 python python-3.x list-comprehension

我目前正在学习 python 中列表理解的概念。但是,当我迭代的列表包含长度相等或不同的子列表时,我会遇到很大的问题。例如,我想将 union_set() 的代码变成单行理解:

def union_set(L):
    S_union = set()

    for i in range(len(L)):
        S_union.update(set(L[i]))

    return S_union


L1 = [1, 2, 3]
L2 = [4, 5, 6]
L3 = [7, 8, 9]

L = [L1, L2, L3]
print(L)

print(union_set(L))

我很确定这应该是可能的(也许通过“某种方式”解压子列表的内容(?)),但我担心我在这里遗漏了一些东西。谁能帮忙?

最佳答案

使用列表理解,你可以做这样的事情:

>>> L1 = [1, 2, 3]
>>> L2 = [4, 5, 6]
>>> L3 = [7, 8, 9]
>>> L = [L1, L2, L3]
>>> s=set([x for y in L for x in y])
>>> s
set([1, 2, 3, 4, 5, 6, 7, 8, 9])

y 遍历子列表,而 x 遍历 y 中的项目。

关于python - 如何在 python 的单行理解中提取子列表的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524819/

相关文章:

python - 将数据从数据库移动到另一个数据库时出错

python - 当某些参数未知时,如何使用 sympy 获得分段函数?

python - TypeError 'set' 对象不支持项目分配

python - 在 Python 中使用列表理解查找长方体的坐标

python - Tornado vs wsgi(与 gunicorn)

python - Django 应用程序获取 eth0 当前 IP 地址的最佳方法是什么

python - Django DB在模型中存储上传的文件是否高效?

python - 在 Tornado 中将 HTTP 请求重定向到 HTTPS

python - 三元运算符 python3.5 的列表理解

python - 使用 numpy delete 和 enumerate 时索引错误