【发布时间】:2014-11-27 06:42:04
【问题描述】:
不明白为什么在下一个示例中获取列表中元素的索引会有所不同:
list = [1, 1, 1, 4]
print list.index(list[3])
返回预期的 3 作为列表中的索引第四个元素
但是
list = [1, 1, 1, 1]
print list.index(list[3])
意外返回 0。
有什么区别?这是python 3.3
【问题讨论】:
不明白为什么在下一个示例中获取列表中元素的索引会有所不同:
list = [1, 1, 1, 4]
print list.index(list[3])
返回预期的 3 作为列表中的索引第四个元素
但是
list = [1, 1, 1, 1]
print list.index(list[3])
意外返回 0。
有什么区别?这是python 3.3
【问题讨论】:
list.index(x) 总是返回第一个匹配的索引。在第一种情况下,第一个匹配在索引 3 处,即 4 在索引 3 处,而在第二种情况下,第一个匹配在索引 0 处,即 1 在索引 0 处。1 也在索引 1,2 和 3 处。
【讨论】:
【讨论】:
第一次使用列表作为变量名是不好的做法:
index search the element from the start of list, so in here you will get always 0:
>>> my_list = [1, 1, 1, 1]
>>> my_list.index(1)
0
>>> my_list.index(my_list[3])
0
【讨论】:
list.index(n) 将返回“列表”中第一个“n”的索引。 所以在你的例子中
list = [1, 1, 1, 1] #list[3] will equal 1
所以list.index([3]) 或list.index(1) 将返回 0,或列表中第一个 1 的索引。
【讨论】: