簡體   English   中英

如何從python中的列表列表中刪除列表元素

[英]How to remove list element from list of list in python

我試圖從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)

NewList = [element[:2] for element in List]

如果未指定開始索引,它將被視為None這是相同的列表的起始索引時None前的第一次出現:

如同:

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

在Python 3中,您可以使用擴展解包來實現應用'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']

請參考以下代碼:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM