Python index()函数未返回正确的索引
假设我有一个数字列表,我想使用for循环打印每个元素的索引Python index()函数未返回正确的索引,python,list,Python,List,假设我有一个数字列表,我想使用for循环打印每个元素的索引 test = [1, 2, 2, 4, 4] for x in test: print(test.index(x)) 当我运行代码时,它会打印“01 13 3”而不是“01 2 3 4”。这里发生了什么事?如果您查看,您可以了解索引的操作方式。此代码执行正确,因为index返回第一个索引,其中包含传递给方法的值 因此,在您的代码中,列表中有重复的值,第二次同时打印1和3,是因为2和4的第一个实例分别位于这些索引处。请阅读文
test = [1, 2, 2, 4, 4]
for x in test:
print(test.index(x))
当我运行代码时,它会打印“01 13 3”而不是“01 2 3 4”。这里发生了什么事?如果您查看,您可以了解索引的操作方式。此代码执行正确,因为index
返回第一个索引,其中包含传递给方法的值
因此,在您的代码中,列表中有重复的值,第二次同时打印1
和3
,是因为2
和4
的第一个实例分别位于这些索引处。请阅读文档,看看index
在做什么。您正在寻找enumerate(test)
当您在test中对x进行计算时,您将得到数字1、2、2、4、4。。。index函数返回所提供值的第一个索引->列表的0、1、1、3、3元素不“知道”它们是列表的元素,特别是不知道是哪个元素。事实上,两个2
s和两个4
s都是完全相同的对象,实际上处于两个位置。这与对象不“知道”是否有名称和名称以及对象如何有1个、零个或多个名称没有什么不同。
test = [1, 2, 2, 4, 4]
for index, x in enumerate(test):
print(index, x)