首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中将元素从子数组中删除

如何在Python中将元素从子数组中删除
EN

Stack Overflow用户
提问于 2015-02-04 01:38:21
回答 6查看 2.2K关注 0票数 0

假设我们有一个像a = [['a','b','c'], ['aber', 'jsfn', 'ff', 'fsf', '003'], [...] ...]这样的数组,其中每个元素可以有不同的大小。我想要做的是删除每个子数组的最后一项,如果它符合我设置的条件。所以我有:

代码语言:javascript
复制
for x in range(len(a)):
    if the last item in x matches some condition that is set:
        then remove the last item from x

因为我处理的是一个数组,所以我尝试了a.remove(-1),但这是错误的。那么,有什么简单的方法可以做到这一点吗?

举个例子,如果我有:

代码语言:javascript
复制
for x in range(len(a)):
        if the last element of each sub-array starts with an "S":
            then remove the last item from that sub-array

我该如何处理这个问题呢?任何例子或一些教程的链接都是非常感谢的。

EN

回答 6

Stack Overflow用户

发布于 2015-02-04 01:42:59

Python按索引列出了support del:

代码语言:javascript
复制
>>> l = [1,2]
>>> del l[-1]
[1]

.remove(值)删除第一个匹配值。

.pop(值)与remove相同,但它返回被移除的值,如果你不给它赋值,它将“弹出”列表中的最后一项。

票数 1
EN

Stack Overflow用户

发布于 2015-02-04 01:44:49

你在这里看到的是一个列表,而不是一个数组。在此基础上,您可以执行以下操作:

代码语言:javascript
复制
a = [['a','b','c'], ['aber', 'jsfn', 'ff', 'fsf', '003'], ['d', 'Starts With S']]  

for sublist in a:
    if sublist[-1].startswith("S"):
        sublist.pop()

print a

它在运行时会产生:

代码语言:javascript
复制
[['a', 'b', 'c'], ['aber', 'jsfn', 'ff', 'fsf', '003'], ['d']]
票数 1
EN

Stack Overflow用户

发布于 2015-02-04 01:41:10

您可以将要删除的元素传递给remove(),或者如果您只想删除最后一个元素,请使用pop(),请参阅以下示例:

代码语言:javascript
复制
>>> a = [['a','b','c'], ['aber', 'jsfn', 'ff', 'fsf', '003']]
>>> a[0].remove(a[0][1])  # a[0][1] is 'b'
>>> a[0]
['a', 'c']
>>> a
[['a', 'c'], ['aber', 'jsfn', 'ff', 'fsf', '003']]
>>> a[1].pop()  # remove the last element of a[1]
'003'
>>> a
[['a', 'c'], ['aber', 'jsfn', 'ff', 'fsf']]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28305253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档