我是python的新手,我想知道如何从列表中删除项目。说我有清单:
a=[(102,12,0),(123,12,0),(124,12,1)]
我想删除最后有0的项目,所以我的列表最终会像:
a = [(124,12,1)]
答案 0 :(得分:5)
这里:
a = [i for i in a if i[-1] != 0] #list comprehension (1 line) method.
当父列表也是目的地列表时,“正常”的方式没有列表理解。
tmp = []
for i in a:
if i[-1] != 0:
tmp.append(i)
a = tmp
行动中:
>>> a=[(102,12,0),(123,12,0),(124,12,1)]
>>> a = [i for i in a if i[-1] != 0]
>>> a
[(124, 12, 1)]
>>>
答案 1 :(得分:2)
您可以使用list comprehensions
假设val[-1]
是迭代时使用的变量, val
会给你带有0的元组。
所以,你的代码是这样的:
a = [val for val in a if val[-1]]
答案 2 :(得分:1)
不像单线列表理解那样令人敬畏,但仍然可以做到这一点:)。
b = tuple
for tple in a:
b = b + tple
result = tuple
for val in set(b):
if val % 10 != 0:
result = result + (val,)