有人可以解释为什么我得到一个超出范围的列表索引错误吗???我不明白为什么,任何帮助都是不胜感激的。
original_alphabet = "abcdefghijklmnopqrstuvwxyz"
original_alphabet_list = []
for char in original_alphabet:
original_alphabet_list.append(char)
keyword_list = []
for char in keyword:
keyword_list.append(char)
for value in keyword_list:
for index in range(26):
if value == original_alphabet_list[index]:
original_alphabet_list.pop(index)
您收到list index out of range
错误,因为您正在从正在迭代的同一列表中删除一个元素:
original_alphabet_list.pop(index)
这就像砍掉你坐在角落里的同一根树枝!自然的结果是你会掉下来。
删除元素时,original_alphabet_list中的索引将被重新排列,因此错误,因为在原始列表中找不到索引。为了将来参考,每当你想要遍历数组或字典时,通过在迭代中切片来制作副本,如下所示:
for value in keyword_list[:]:
for index in range(26):
if value == original_alphabet_list[index]: original_alphabet_list.pop(index)