Ali*_*rld 9 python list-comprehension
如何使用列表推导从列表中删除重复项?我有以下代码:
a = [1, 2, 3, 3, 5, 9, 6, 2, 8, 5, 2, 3, 5, 7, 3, 5, 8]
b = []
b = [item for item in a if item not in b]
Run Code Online (Sandbox Code Playgroud)
但它不起作用,只产生相同的列表.为什么它产生相同的清单?
Chr*_*tts 16
它生成一个相同的列表,b在运行时不包含任何元素.你想要的是什么:
>>> a = [1, 2, 3, 3, 5, 9, 6, 2, 8, 5, 2, 3, 5, 7, 3, 5, 8]
>>> b = []
>>> [b.append(item) for item in a if item not in b]
[None, None, None, None, None, None, None, None]
>>> b
[1, 2, 3, 5, 9, 6, 8, 7]
Run Code Online (Sandbox Code Playgroud)
如果你不介意使用与列表理解不同的技术,你可以使用一个集合:
>>> a = [1, 2, 3, 3, 5, 9, 6, 2, 8, 5, 2, 3, 5, 7, 3, 5, 8]
>>> b = list(set(a))
>>> print b
[1, 2, 3, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
使用keys上dict与价值构建a为关键。
b = dict([(i, 1) for i in a]).keys()
Run Code Online (Sandbox Code Playgroud)
或使用一套:
b = [i for i in set(a)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20805 次 |
| 最近记录: |