我想从两个独立项目的列表中创建一个列表.
还有其他类似的问题,但似乎没有任何关注有效地解决这个问题,因为列表是几百万项长.
完全不相关:我是唯一一个讨厌标签建议框如何掩盖"发布你的问题"按钮的人吗?
use*_*312 32
用一个set
.
>>> first = [1, 2, 3, 4]
>>> second = [3, 2, 5, 6, 7]
>>> third = list(set(first) | set(second)) # '|' is union
>>> third
[1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)
小智 11
一种稍微有效的方法:
>>> first = [1, 2, 3, 4]
>>> second = [3, 2, 5, 6, 7]
# New way
>>> list(set(first + second))
[1, 2, 3, 4, 5, 6, 7]
#1000000 loops, best of 3: 1.42 µs per loop
# Old way
>>> list(set(first) | set(second))
[1, 2, 3, 4, 5, 6, 7]
#1000000 loops, best of 3: 1.83 µs per loop
Run Code Online (Sandbox Code Playgroud)
新方法更有效,因为它只有一个set()而不是2.
>>> l1 = range(10)
>>> l2 = range(5, 15)
>>> set(l1) | set(l2)
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22579 次 |
最近记录: |