如何在python中从列表列表中删除列表元素

如何在python中从列表列表中删除列表元素,python,list,Python,List,我试图从python中的列表列表中删除第三个和第四个列表 我的名单如下: List = [ ['101', 'Dashboard', '1', '1'], ['102', 'Potential Cstomer', '1', '1'], ['102-01', 'Potential Cstomer', '1', '1'], ['102-02', 'Potential Cstomer Activity',

我试图从python中的列表列表中删除第三个和第四个列表

我的名单如下:

List =  [
            ['101', 'Dashboard', '1', '1'],
            ['102', 'Potential Cstomer', '1', '1'],
            ['102-01', 'Potential Cstomer', '1', '1'],
            ['102-02', 'Potential Cstomer Activity', '1', '1']
        ]
在删除列表中的第三和第四个元素后,我希望如下所示:

NewList =  [
            ['101', 'Dashboard'],
            ['102', 'Potential Cstomer'],
            ['102-01', 'Potential Cstomer'],
            ['102-02', 'Potential Customer Activity']
        ]
我尝试了下面的代码,但没有做任何更改

    NewList     = [list(element) for element in List if element[0] or element[1]]

    print NewList

如何更改当前代码以实现预期结果?谢谢。

将列表中的每个嵌套列表切片。切片表示法从索引0开始,在1处停止,即
[0,2)

如果未指定开始索引,则将其视为
None
,这与第一个
之前出现
None
时列表的开始索引相同

同:

NewList = [element[slice(None, 2)] for element in List] # More verbose

在Python3中,您可以使用扩展解包来实现应用“splat”操作符
*
的相同功能:

NewList = [elements for *elements, _, _ in List]
这个怎么样:

 for s in List:
    del s[3]
    del s[2]

此解决方案使用负索引来允许任意长度的子列表,同时保留两个尾随数字的原始条件

List =  [
        ['101', 'Dashboard', '1', '1'],
        ['102', 'Potential Cstomer', '1', '1'],
        ['102-01', 'Potential Cstomer', '1', '1'],
        ['102-02', 'Potential Cstomer Activity', '1', '1']
    ]
new_final_list = [i[:-2] for i in List]
for i in new_final_list:
   print(i)
输出:

['101', 'Dashboard'], 
['102', 'Potential Cstomer']
['102-01', 'Potential Cstomer']
['102-02', 'Potential Cstomer Activity']
请参考以下代码:
del s[2:]
将更有效地清除除前两个条目以外的所有条目。如果您只想删除索引2和3,可以使用
del s[2:4]
。请注意,此解决方案不会以任何方式复制,因此数据会被删除(Moses的解决方案会进行浅层复制,因此新
列表的前两个级别是独立的).关于行为的次要说明:这将删除最后两个元素,而不是保留前两个。当每个子列表中有统一的四个元素时,这两个操作是等效的,但是如果元素长度不均匀,或者您执行了两次操作,则行为会非常不同。保留前两个元素更安全且幂等@ShadowRanger感谢您指出这一点。虽然其他解决方案在性能方面更令人满意,但我想我会包括此解决方案,以允许任意长度的子列表。非常感谢您的帮助和详细回答。它非常有效。我从中学到了一些东西。欢呼:)
['101', 'Dashboard'], 
['102', 'Potential Cstomer']
['102-01', 'Potential Cstomer']
['102-02', 'Potential Cstomer Activity']
Names = [["Tom", 32, 12], ["John", 54, 16], ["James", 52, 15]]
Names_new = []

for i in Names:
    # print(i + )
    del i[0]
    Names_new.append(i)

print(Names_new)