解
是的你可以:
l = L[1::2]
这就是全部。结果将包含放置在以下位置的元素(
0基于-,因此第一个元素在position
0,第二个元素在
1etc):
1, 3, 5
因此结果(实际数字)将为:
2, 4, 6
说明
将
[1::2]在年底只是为了列表切片的符号。通常采用以下形式:
some_list[start:stop:step]
如果省略
start,将使用默认值(
0)。因此,将选择第一个元素(位于position
0,因为索引是
0基于-的)。在这种情况下,将选择第二个元素。
因为省略了第二个元素,所以使用默认值(列表的末尾)。因此,列表是 从第二个元素到最后一个元素 进行迭代 的 。
我们还提供了第三个参数(
step)
2。这意味着将选择一个元素,将跳过下一个元素,依此类推…
因此,总结起来,在这种情况下
[1::2]意味着:
- 取第二个元素(顺便说一句,如果从索引判断,它是一个奇数元素),
- 跳过一个元素(因为我们有
step=2
,所以我们跳过了一个元素,step=1
这与默认设置相反), - 接下一个元素
- 重复步骤2.-3。直到到达列表的末尾,
编辑
:@PreetKukreti提供了有关Python的列表切片表示法的另一种解释的链接。参见此处:解释Python的切片符号
额外功能-以取代柜台 enumerate()
在您的代码中,您显式创建并增加了计数器。在Python中,这不是必需的,因为您可以使用来枚举一些可迭代的对象
enumerate():
for count, i in enumerate(L): if count % 2 == 1: l.append(i)
上面的代码与您使用的代码完全相同:
count = 0for i in L: if count % 2 == 1: l.append(i) count += 1
有关
for在Python中使用计数器模拟循环的更多信息:在Python“for”循环中访问索引



