现在我正在研究Python 2.7,我有一点问题。
我解释说我需要获取列表的索引到另一个列表中:
students=[["A","B"],["A","B"]]
for m in students:
if "A" in m and "B" in m:
print m
当我运行此代码时,我得到了这个:
['A', 'B']
['A', 'B']
似乎是正确的,它会对学生进行迭代并打印两次['A','B']因为它重复了......但如果我运行此代码:
for m in students:
if "A" in m and "B" in m:
print students.index(m)
打印出来:
0
0
似乎它只迭代第一个元素,对我来说正确的输出应该是这样的:
0
1
有人能解释一下为什么Python会这样做,以及如何修复它,谢谢
答案 0 :(得分:3)
students.index(m)
返回第一个索引i
,其中students[i]
等于m
。
由于students
包含两次相同的项目,因此两次都返回0。
因此循环遍历students
中的两个项目,但是从student[0] == student[1]
开始,当m
绑定到students[1]
时,students.index(student[1]))
仍然返回0。
如果您只是想报告循环的当前索引,请使用enumerate:
students = [["A","B"],["A","B"]]
for i, m in enumerate(students):
if "A" in m and "B" in m:
print i
打印
0
1