python - 列表拆分为 2 个连续的列表 - 升序为 1
问题描述
对于列表:
list_x=[1,2,3,6,7,8,1,2,6,7]
您如何将其拆分为 2 个元素的单独列表,这些元素是连续的并按 1 递增。
期望的输出
list_a=[1,2]
list_b=[2,3]
list_c=[6,7]
list_d=[7,8]
list_e=[1,2]
list_f=[6,7]
请注意,“list_x”可以是任意长度,并且需要将此列表分成 2 对。每对都连续加 1。
这是一个尝试:
list_a = list_x.ne.shift(fill_value=list_a.iat[0])
谢谢你。
解决方案
对于具有连续编号的连续对,它是
values = [[a, b] for a, b in zip(list_x, list_x[1:]) if a + 1 == b]
print(values) # [[1, 2], [2, 3], [6, 7], [7, 8], [1, 2], [6, 7]]
对于所有连续对
values = list(zip(list_x, list_x[1:]))
print(values) # [(1, 2), (2, 3), (3, 6), (6, 7), (7, 8), (8, 1), (1, 2), (2, 6), (6, 7)]
推荐阅读
- shopify - Shopify - 切换变体时更改显示(液体)
- python - 如何在谐波图像中找到孔的位置?
- java - 它将反转纯文本,用“*”替换空格,然后根据加密密钥移动纯文本的字母
- javascript - 使活动超链接不透明而其他超链接透明
- docker - 分叉的 docker 映像未构建
- python - 我正在尝试创建一个登录页面,但登录后下载了一个 0 kb 的文件并且 CSRF 验证失败
- vim - 在 Vim 中为不同的语言设置不同的设置
- html - 图片没有响应
- intellij-idea - IntelliJ IDEA Live Template Groovy 脚本错误
- package - 哪些编程语言拥有最公开可用的库?