列表列表的Python切片

jen*_*sph 1 python list slice

说我有一个列表列表

    >>> s = [ [1,2], [3,4], [5,6] ]
Run Code Online (Sandbox Code Playgroud)

我可以访问第二个列表的项目:

    >>> s[1][0]
    3
    >>> s[1][1]
    4
Run Code Online (Sandbox Code Playgroud)

整个第二个列表为:

    >>> s[1][:]
    [3, 4]
Run Code Online (Sandbox Code Playgroud)

但是为什么以下内容也给了我第二个列表?

    >>> s[:][1]
    [3, 4]
Run Code Online (Sandbox Code Playgroud)

我认为它会给我从三个列表中的每一个中的第二个项目。

可以使用列表理解来实现这一点(如问题 13380993 中所述),但我很好奇如何正确理解s[:][1].

Mar*_*ers 5

s[:]返回列表的副本。next[...]适用于前一个表达式返回的任何内容,并且[1]仍然是该列表的第二个元素。

如果您想要每隔一个项目,请使用列表理解:

[n[1] for n in s]
Run Code Online (Sandbox Code Playgroud)

演示:

>>> s = [ [1,2], [3,4], [5,6] ]
>>> [n[1] for n in s]
[2, 4, 6]
Run Code Online (Sandbox Code Playgroud)