如何从python

时间:2016-06-07 07:16:57

标签: python list indexing

我试图找出如何从列表中删除特定索引,但我不知道如何解决我的问题。有人可以帮我解决这个问题吗?

首先,我必须使用输入从用户那里获得一些数字。

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)

3 个答案:

答案 0 :(得分:2)

您可以使用关键字 del 将其删除。这是一个例子。

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

这将删除my_list的第一个索引。因此,结果列表将是 [2,3,4,5]

Here是教程中的部分。

答案 1 :(得分:1)

请再次检讨您的问题。请更正您的问题,因为目前还不清楚您要实现的目标。这是我认为你希望实现的两个条件。

  1. if list[0] == 1然后删除该元素。
  2. 如果list[i+1]-1 == list[i],请删除list[i+1]
  3. 首先,在代码的第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]

答案 2 :(得分:-1)

您的代码存在一些问题,包括语法,缩进和逻辑。我已将您的代码格式化为工作方式。祝你好运。

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)