这是
array slice语法.看到这个问题:
Explain Python’s slice notation
对于列表my_list对象,例如[1,2,“foo”,“bar”],my_list [1:]相当于从0索引1开始的所有元素的浅复制列表:[2,“foo”,“bar”].所以你的for语句遍历这些对象:
for-iteration 0: x == 2
for-iteration 1: x == "foo"
for-iteration 2: x == "bar"
range(..)返回索引(整数)的列表/生成器,因此你的for语句将迭代整数[1,2,…,len(my_list)]
for-iteration 0: x == 1
for-iteration 1: x == 2
for-iteration 2: x == 3
因此,在后一版本中,您可以使用x作为列表的索引:iter_obj = my_list [x].
或者,如果您仍需要迭代索引(例如,对于当前对象的“计数”),则可以使用枚举:稍微更加pythonic版本:
for (i, x) in enumerate(my_list[1:]):
# i is the 0-based index into the truncated list [0, 1, 2]
# x is the current object from the truncated list [2, "foo", "bar"]
如果您决定将my_list的类型更改为其他类型,则此版本将更具未来性,因为它不依赖于基于0的索引的实现细节,因此更有可能与支持切片的其他可迭代类型一起使用句法.