[英]Python: Remove items in list of list by index
在这里我想按索引删除列表中的项目。 输入为
li = [[1,2,3,4],[5,6,7,8]]
排除的输出是
[[1,3,4],[5,7,8]]
我尝试过的是
print [x.pop(1) for x in li]
您可以像这样使用del
运算符:
for sublist in list:
del sublist[1]
您实际上删除了给定索引中的项目,但打印出了错误的列表。 弹出项目后只需打印li
:
>>> [x.pop(1) for x in li]
>>> print li
但是,您真的必须使用列表推导吗? 因为在列表.pop()
调用.pop()
会累积删除的项并与它们一起创建一个新的,完全无用的列表。
相反,您可以执行以下操作:
>>> for lst in li:
... lst.pop(1)
pop
,就像del
一样,更改基础列表,因此您必须显式循环遍历子列表以删除第二个元素,并且它们将显示修改后的列表。
for l in li: del l[1]
print li
另一方面,如果您不想更改列表,而是直接打印结果,则可以使用列表理解:
print [ (l[:1] + l[2:]) for l in li ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.