根据输入索引重写列表中的项目

时间:2017-09-08 12:24:25

标签: python python-3.x list input

我们说我有一个清单:

lst = [1,2,3,4]

我提示用户输入索引和项目。然后,程序将在列表中查找索引位置,并使用用户输入项替换列表中的元素。例如:

enter index: 2
enter item to replace: 5

输出将是:

[1,2,5,4]

以下是我尝试的内容:

lst = [1,2,3,4]

index = int(input("Enter index: "))
item = int(input("Enter item to replace: "))

i = 0
n = len(lst)
while i<n:
    if i == index:
        lst[i] = item
    else:
        i+=1
print(lst)

我不确定为什么它不打印任何东西,我很确定逻辑是按照书面编写的,但我猜测我的问题是在while循环中?

2 个答案:

答案 0 :(得分:2)

正如@MosesKoledoye所指出的,你可以使用简单的indexing

lst = [1,2,3,4]

index = int(input("Enter index: "))
item = int(input("Enter item to replace: "))

lst[index] = item

Enter index: 2

Enter item to replace: 5

print(lst)
[1, 2, 5, 4]

请记住,列表是0索引的。如果您想使用1索引列表,只需使用lst[index + 1] = item

答案 1 :(得分:1)

你的while循环永远不会终止,因为ii == index的值永远不会增加 - 因此你的while循环被捕获在一个无限循环中,它永远不会到达程序的末尾打印出列表

lst = [1,2,3,4]

index = int(input("Enter index: "))
item = int(input("Enter item to replace: "))

i = 0
n = len(lst)
while i<n:
    if i == index:
        lst[i] = item
    i+=1
print(lst)