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

如何将Python列表按长度2拆分为由二元组组成的新列表

DynamoBIM Python实现列表两两分组方案

核心需求

将一维数值列表按每2个元素为一组,拼接为「外层列表、内层元组」的格式,示例转换效果:
原列表:[123.45, 32.89, 234.90, 234.96, 56.94, 71.21]
目标结果:[(123.45, 32.89), (234.90, 234.96), (56.94, 71.21)]

可直接复用的代码

你可以直接把以下代码复制到DynamoBIM的Python节点中使用:

# 方式1:逻辑直白易修改,适合非专业开发者调整
# 如果是从Dynamo节点传入列表,把下面的input_list赋值改为 input_list = IN[0] 即可
input_list = [123.45, 32.89, 234.90, 234.96, 56.94, 71.21]
output_list = []

# 步长为2遍历原列表,每次取2个元素组成元组
for index in range(0, len(input_list), 2):
    output_list.append( (input_list[index], input_list[index+1]) )

# Dynamo节点输出结果
OUT = output_list

如果需要更简洁的写法,也可以用列表推导式实现:

input_list = [123.45, 32.89, 234.90, 234.96, 56.94, 71.21]
output_list = [(input_list[i], input_list[i+1]) for i in range(0, len(input_list), 2)]
OUT = output_list

注意事项

  • 确保原列表长度为偶数即可正常运行,若存在列表长度为奇数的场景,可将append行替换为output_list.append(tuple(input_list[index:index+2])),最后不足2个的元素会生成单元素元组,不会报错
  • 若后续需要调整为每N个元素一组,仅需修改range中的步长参数,同时对应增加元组内的取值位置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:36:04