如何获取Python列表的切片以获得连续元素的组合?

Sou*_*oul -1 python list sequence

假设我有一个清单

l = ['p4', 'p6', 'p7', 'p9']

我想要得到这样的输出[['p4', 'p6'], ['p6', 'p7'], ['p7', 'p9']],顺序是必须的(我不想要元素的组合)。Python中有一个函数可以做到这一点吗?

Pre*_*and 5

要获取一对连续元素,请使用zip

>>> list(zip(l, l[1:]))
[('p4', 'p6'), ('p6', 'p7'), ('p7', 'p9')]
Run Code Online (Sandbox Code Playgroud)

要将所有内部元素作为列表,请使用map

>>> list(map(list, zip(l, l[1:])))
[['p4', 'p6'], ['p6', 'p7'], ['p7', 'p9']]
Run Code Online (Sandbox Code Playgroud)

  • 更新了我的答案 (2认同)