簡體   English   中英

如何從python列表中刪除特定索引

[英]How can I remove specific index from list in python

我試圖弄清楚如何從列表中刪除特定的索引,但是我不知道如何解決我的問題。 有人可以幫我解決這個問題嗎?

首先,我必須使用輸入從用戶那里獲得一些數字。

numbers = int(input("input any numbers: "))
list_num = list(numbers)

其次,如果list_num [0] == 1,則刪除該元素。

第三,如果list_num [i + 1] == list_num [i],則刪除list_num [i + 1]。

因此,如果初始列表是這樣的: list_num = [1,2,7,8,13,20,21]

最終列表將是list_num = [2,7,13,20]

這是要修復的程序:

 numbers = int(input("input any numbers:"))
 list_num = list(numbers)
 if list_num[0] ==1:
    list_num.remove(num[0])
 for i in range(1,len(list_num)-1, 1):
    if list_num[i] = list_num[i+1] -1:
         list_num.remove(num[i+1])
 print(list_num)

您可以使用關鍵字del刪除它。 這是例子。

my_list = [1, 2, 3, 4, 5]
del my_list[0] # 0 is the index

這將刪除my_list的第一個索引。 因此,結果列表將為[2、3、4、5]

是教程中的部分。

請再次查看您的問題。 請更正您的問題,因為不清楚您要達到的目標。 這是我想您要達到的兩個條件。

  1. 如果list[0] == 1則刪除該元素。
  2. 如果list[i+1]-1 == list[i]則刪除list[i+1]

首先在代碼的第6行出現錯誤,應該是if ==而不是if = 。下面的代碼將實現上述條件。

numbers = int(input("Enter the limit for the list : "))

list_num = []

for i in range(0,numbers):
    list_num.append(int(input("list["+str(i)+"]: ")))

if list_num[0] == 1:
    list_num.remove(list_num[0])
try:
    for i in range(0,len(list_num)):
        if list_num[i] == list_num[i+1]-1:
            list_num.remove(list_num[i+1])
except:
    print list_num

輸入:[1,2,7,8,13,20,21]

輸出:[2,7,13,20]

您的代碼有幾個問題,包括語法,縮進和邏輯。 我已經將您的代碼格式化為可工作的方式。 祝好運。

numbers = input("input any numbers:")
list_num = list(numbers)

ret = []
for i,v in enumerate(list_num):
    if i == 0 and v == 1:
        continue
    if v == list_num[-1]:
        ret.append(v)
        break
    if v != list_num[i+1]:
        print v, list_num[i+1]
        ret.append(v)

print(ret)

暫無
暫無

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

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