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

如何用循环将Python列表按每6个元素拆分对应数量的字符串?

如何用循环将Python列表按每6个元素拼接成带|的字符串?

刚好碰到过类似的需求,这事儿用循环加切片就能完美解决,而且因为你明确说列表长度始终是6的倍数,省了不少边界判断的麻烦~

推荐方案:用字典存储结果(更易维护)

这种方式不会乱创建一堆零散变量,后续调用也更方便:

c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
# 用整数除法计算分组数,确保得到整数结果
group_count = len(c) // 6

# 初始化字典存每个分组的字符串
group_strings = {}

for idx in range(group_count):
    # 计算当前分组的起始、结束索引
    start_pos = idx * 6
    end_pos = start_pos + 6
    # 切片取当前组的元素,转成字符串后用|连接
    current_group = "|".join(str(num) for num in c[start_pos:end_pos])
    # 按str1、str2的格式存入字典
    group_strings[f"str{idx+1}"] = current_group

# 验证输出
for name, content in group_strings.items():
    print(f"{name}={content}")

运行这段代码后,你就能得到想要的输出:

str1=1|2|3|4|5|6
str2=7|8|9|10|11|12
str3=13|14|15|16|17|18

如果你非要创建独立变量(不推荐)

要是你确实需要直接生成str1、str2这类变量,可以用globals()来动态创建,但这种方式会让变量环境变得混乱,除非特殊场景否则不建议:

c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
group_count = len(c) // 6

for idx in range(group_count):
    start_pos = idx * 6
    end_pos = start_pos + 6
    current_group = "|".join(str(num) for num in c[start_pos:end_pos])
    # 动态创建全局变量
    globals()[f"str{idx+1}"] = current_group

# 直接调用变量测试
print(str1)  # 输出1|2|3|4|5|6
print(str2)  # 输出7|8|9|10|11|12
print(str3)  # 输出13|14|15|16|17|18

关键逻辑说明

  • 用len(c)//6做整数除法,确保分组数是整数(因为列表长度是6的倍数,结果不会有小数)
  • 循环中通过idx*6计算每组的起始索引,start_pos+6得到结束索引,用切片c[start_pos:end_pos]精准取出每组的6个元素
  • 用生成器表达式str(num) for num in ...把每个数字转成字符串,再通过"|".join()拼接成目标格式的字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:43:00