我想通過列表(用戶輸入的範圍)迭代,首先假定所有數字都是素數(P),並讓程序遍歷列表。當列表中的元素爲P時,我想遍歷範圍內的所有倍數並將它們改爲N.當元素爲N時,我希望程序移動到下一個數字(我將0和1設置爲不是素數因爲它們是例外)。我遇到索引問題,但是,我得到的錯誤:通過迭代(python)更改列表元素
list1[number1] = 'N'
IndexError: list assignment index out of range
當我運行我有的程序。這裏是代碼:
# input
n = int(input("Enter a positive integer greater than or equal to 10: "))
while n < 10:
print ("Invalid! Try again")
int(input("Enter a positive integer greater than or equal to 10: "))
# create list
new_n = n + 1
list1 = ['P'] * new_n
# set non prime
list1[0] = 'N'
list1[1] = 'N'
# set up loop
counter = 0
for x in list1:
counter1 = 2
if list1[counter] == 'P':
for y in list1:
number1 = counter * counter1
list1[number1] = 'N'
counter1 += 1
counter += 1
else:
counter += 1
任何幫助,將不勝感激!謝謝。
提示:使用'枚舉()',而不是一個原始指數環。它會讓您同時訪問元素及其相應的索引。 –
@AkshatMahajan謝謝!我現在正在這樣做。但是,如果我列舉了列表,我怎麼能索引與列表中的元素相對應的數字。例如,在像(2,P)這樣的枚舉列表中,我如何將2作爲int來索引? –
你想要做'對於索引,枚舉(list1)'中的項來訪問'item'的相應索引。 –