从列表中删除子列表

4
我想从列表中删除一个子列表。我只知道起始索引和结束索引。如何从列表中删除?
我正在使用以下代码:
def delete_sub_list( self, cmd_list, start, end ):
        tmp_lst = []
        for i in range( len( cmd_list ) ):
            if( i < start or i > end ):
                tmp_lst.append( cmd_list[ i ] )

        return tmp_lst

并且我是以下方式进行调用的:
cmd_list = self.delete_sub_list( cmd_list, 4, 14 )

1
注意:对于区间比较,您可以直接编写 start <= i <= end 以使其更易于阅读。不过在您的情况下,您应该使用其他方法 :) - Joël
3个回答

7
这个的Python语法是:
del cmd_list[4:14 + 1]

+1 是必要的,以匹配您的代码。 Python使用半开区间,即切片中包括第一个索引,但不包括最后一个索引。)

4
你可以使用以下两种方式之一:
cmd_list[start:end + 1] = []

或者

del cmd_list[start:end + 1]

0

可能最容易的方法是使用切片:

cmd_list = cmd_list[:start] + cmd_list[end+1:]

我们仍然需要对第二半部分使用end+1,但这仍然是一行非常清晰的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接