You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python3中提取列表中符合数值顺序的元素生成嵌套列表?

这是个挺有意思的需求,咱们先把规则拆解清楚,再一步步实现:

规则梳理

从你的例子能看出来核心逻辑是这两步:

  1. 先提取原列表中元素首次出现的顺序序列(你的例子里就是[1,2,3],因为1最先出现,然后是2,最后是3)
  2. 对这个序列里的每一对相邻元素(比如(1,2)和(2,3)),生成一个子列表——包含原列表中所有属于这对元素的项,并且严格保留原列表中的顺序
  3. 把这些子列表组合起来就是最终目标结果

Python 实现代码

list_1 = [1,2,2,3,1,2]

# 第一步:获取元素首次出现的有序唯一序列
unique_ordered = []
for num in list_1:
    if num not in unique_ordered:
        unique_ordered.append(num)
# 此时unique_ordered的值是 [1,2,3]

# 第二步:遍历相邻元素对,生成对应子列表
result = []
for i in range(len(unique_ordered) - 1):
    current_num = unique_ordered[i]
    next_num = unique_ordered[i+1]
    # 用集合优化判断效率(列表很大时更明显)
    allowed_nums = {current_num, next_num}
    # 收集原列表中符合条件的元素,保留原顺序
    sub_list = [num for num in list_1 if num in allowed_nums]
    result.append(sub_list)

print(result)  # 输出: [[1,2,2,1,2], [2,2,3,2]]

补充说明

  • 如果原列表的首次出现序列更长(比如[1,2,3,4]),这段代码会自动生成[[1,2,...], [2,3,...], [3,4,...]]这样的嵌套列表,完全适配扩展场景
  • 用集合allowed_nums是为了提升判断效率,当原列表元素数量很多时,num in 集合的速度会比num in 元组快不少

内容的提问来源于stack exchange,提问作者user9342203

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:11:52