【发布时间】:2020-04-05 11:31:18
【问题描述】:
我正在尝试通过使用列表理解来消除重复项,但我不断得到未解决的参考 s
代码:
l = [[1,4,2],[5,1,4],[2,3,4,5]]
{n for n in s for s in l }
【问题讨论】:
-
应该是
{n for s in l for n in s}
标签: python python-3.x list set
我正在尝试通过使用列表理解来消除重复项,但我不断得到未解决的参考 s
代码:
l = [[1,4,2],[5,1,4],[2,3,4,5]]
{n for n in s for s in l }
【问题讨论】:
{n for s in l for n in s}
标签: python python-3.x list set
你可以使用itertools.chian.from_iterable:
from itertools import chain
l = [[1,4,2],[5,1,4],[2,3,4,5]]
set(chain.from_iterable(l))
输出:
{1, 2, 3, 4, 5}
【讨论】:
In [45]: timeit set(chain.from_iterable(l)) 591 ns ± 32 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)...In [47]: timeit {n for s in l for n in s} 653 ns ± 33.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
{n for s in l for n in s}
>> {1, 2, 3, 4, 5}
您使用了错误的 for 循环顺序。
【讨论】:
符号是{item for inner in outer for item in inner}
在你的情况下{n for s in l for n in s}
【讨论】: