Del列表和列表中存在字符串的下一个列表元素

问题描述 投票:-1回答:2

我有一个例子:

list = [['2 a', 'nnn', 'xxxx','last'], ['next, next'], ['3', '4', 'next']]

for i in range(len(list)):
  if list[i][-1] == "last":
    del(list[i+1])
    del(list[i])

我想删除此列表,其中最后一项是“ last”,列表中的下一项。在此示例中,每次都会出现问题-我尝试了不同的配置,用numpy数组替换-毫无帮助。

引用:IndexError: list index out of range

我希望此列表的最终结果为['3', '4', 'next']

给我一些提示或帮助我解决问题。

python arrays list del
2个回答
0
投票

尝试一下:

l = [['2 a', 'nnn', 'xxxx','last'], ['next, next'], ['3', '4', 'next']]
delete_next = False
to_ret = []
for x in l:
    if x[-1] == 'last':
        delete_next = True
    elif delete_next:
        delete_next = False
    else:
        to_ret += x

如果需要删除变量,请使用变量进行存储


0
投票
newlist = []
for i in l:
    if i[-1] == 'last':
        continue
    else:
        newlist.append(i)
© www.soinside.com 2019 - 2024. All rights reserved.