2

如果我有清单:

lista=[99, True, "Una Lista", [1,3]]

下面的表达式是什么意思?

mi_var = lista[0:4:2]
4

3 回答 3

8

该语法lista[0:4:2]称为扩展切片语法,返回列表的一个切片,该切片由索引 0(包括)到 4(不包括)的元素组成,但仅包括偶数索引(步骤 = 2)。

在您的示例中,它将给出[99, "Una Lista"]. 更一般地,您可以通过编写 lista[::2] 获得由偶数索引处的每个元素组成的切片。这与列表的长度无关,因为 start 和 end 参数分别默认为 0 和列表的长度。

切片的一个有趣功能是您还可以分配给它们以修改原始列表,或删除切片以从原始列表中删除元素。

>>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[::2] = ['a', 'b', 'c', 'd', 'e']   # Assign to index 0, 2, 4, 6, 8
>>> x
['a', 1, 'b', 3, 'c', 5, 'd', 7, 'e', 9]
>>> del x[:5]                            # Remove the first 5 elements
>>> x
[5, 'd', 7, 'e', 9]
于 2010-10-26T19:11:10.313 回答
0

从 0 到 3 遍历列表(因为不包括 4,[start, end)),跨过两个元素。结果[99, 'Una Lista']与预期一致,并存储在列表中,mi_var

于 2010-10-26T19:11:46.270 回答
0

一种只是运行并查看的方法:

>>> lista=[99, True, "Una Lista", [1,3]]
>>> lista[0:4:2]
[99, 'Una Lista']

lista这是一个切片表示法,它创建一个新列表,该列表由从 index0开始到但不包括 index的每隔一个元素组成4

于 2010-10-26T19:11:50.477 回答