繁体   English   中英

Python:按索引删除列表中的项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM