我想将一个列表拆分成一个嵌套列表。我的 list 是这样的:
[1,2,1,3,2]
现在,我希望输出是这样的:
[[1,2],[2,1],[1,3],[3,2]]
有没有可能像上面提到的那样输出?
请您参考如下方法:
你可以使用zip
lst = [1,2,1,3,2]
res = [list(pair) for pair in zip(lst, lst[1:])]
print(res) # -> [[1, 2], [2, 1], [1, 3], [3, 2]]
注意:zip 中 lst 的第一个实例不必切片,因为它是两个中最小的一个将生成的元组数。
正如@Jean-FrancoisFabre 在评论中所说,如果原始列表很大,您可能希望使用生成器而不是硬 切片。
res = [list(pair) for pair in zip(lst, itertools.islice(lst, 1, None))]
这种方法的好处(或前一种方法的缺点)是 zip (lst[1:]) 中使用的第二个列表不是在内存,但您需要 import itertools 才能正常工作。
