Python中使用for循环遍历数组的问题求助
问题解决:遍历数组并打印所有元素
错误原因分析
第一段代码报错
TypeError: list indices must be integers, not str的原因:
当你写for element in array时,element是数组里的具体元素,不是元素的索引。比如数组是["apple", "banana"],element会依次是"apple"和"banana",这时用array[element]相当于用字符串当索引,而列表要求索引必须是整数,所以报错。第二段代码用
enumerate却没得到正确结果的原因:enumerate(array)返回的是**(索引, 元素)**格式的元组,你把变量顺序写反了——应该是for index, element in enumerate(array),而不是element, x。你当前的写法里,element实际是索引值,x才是数组元素,但你依然用array[element]去取值,这完全没必要,自然得不到正确结果。
正确实现方式
方式一:直接遍历元素(最简单)
不需要通过索引,直接循环获取每个元素并打印:
for element in array: print(element)
方式二:使用enumerate(需要同时获取索引时用)
如果需要同时拿到元素的索引和元素本身,正确使用enumerate:
for index, element in enumerate(array): print(element) # 直接打印元素 # 若需要同时打印索引:print(f"索引{index}:{element}")
内容的提问来源于stack exchange,提问作者Antonio De Angelis
相关产品推荐
相关产品推荐

