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

问题描述 投票:0回答:2

假设我有一个清单:

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循环中?

python python-3.x list input
2个回答
1
投票

你的while循环永远不会终止,因为当i时,i == 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)

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

© www.soinside.com 2019 - 2024. All rights reserved.