如何使用列表推导从列表中删除重复项?我有以下代码:
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)
但它不起作用,只产生相同的列表.为什么它产生相同的清单?
试图想出一个单行程来实现以下(总结一个键的所有值):
>>> data = [('a',1),('b',3),('a',4),('c',9),('b',1),('d',3)]
>>> res = {}
>>> for tup in data:
... res[tup[0]] = res.setdefault(tup[0],0) + tup[1]
...
>>> res
{'a': 5, 'c': 9, 'b': 4, 'd': 3}
Run Code Online (Sandbox Code Playgroud)
单行版本,不使用任何导入,如itertools,集合等.
{ tup[0] : SELF_REFERENCE.setdefault(tup[0],0) + tup[1] for tup in data }
Run Code Online (Sandbox Code Playgroud)
在Python中是否可以使用对当前正在理解的对象的引用?如果没有,有没有办法在单行中实现这一点而不使用任何导入,即使用基本列表/字典理解和内置函数.