Python代码运行报TypeError: 'int' object is not iterable,如何将匹配下标存入index
报错原因
- 触发报错的代码是
index=list(map(int,k)):map()函数要求传入的第二个参数必须是可迭代对象,而你的变量k是遍历range()得到的整数,不属于可迭代类型,因此触发类型错误。 - 额外说明:
k本身已经是int类型的下标值,不需要额外做类型转换,你写的这行属于多余的错误操作。
解决方法
根据你的实际需求二选一即可:
情况1:只需要保存最后一次匹配成功的下标
直接把报错行替换为index = k即可,修改后代码如下:
# 提前初始化index避免无匹配时变量未定义 index = -1 for j in range(len(a)): for k in range(len(test_list)): if a[j] == test_list[k]: index = k
情况2:需要保存所有匹配成功的下标
提前把index初始化为空列表,匹配时往列表追加值即可:
index = [] for j in range(len(a)): for k in range(len(test_list)): if a[j] == test_list[k]: index.append(k)
如果需要同时保存a的下标和test_list的下标,也可以把index.append(k)改成index.append((j,k))
内容的提问来源于stack exchange,提问作者shivalika pillai
相关产品推荐
相关产品推荐

