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

如何在Python中将符号字符串按13/39个元素分组拆分

解决方案

问题出在你直接对字符串用itertools.batched——字符串是字符的迭代器,所以它会把每个字符(包括逗号)拆成单独元素,完全不是你要的按符号分组。正确思路是先把逗号分隔的字符串还原成符号列表,再拆分,最后重新拼成子字符串。

具体代码实现

假设你的nse_string格式是"SYMBOL1,SYMBOL2,SYMBOL3,...":

第一步:把字符串转回符号列表

这是最关键的一步,先拆分出每个独立的符号:

import itertools

# 把逗号分隔的字符串拆成符号列表
symbols_list = nse_string.split(',')

第二步:按指定大小拆分并生成子字符串

按每组13个符号拆分

# 用itertools.batched拆分列表
batches_13 = itertools.batched(symbols_list, 13)
# 把每个子批重新拼成逗号分隔的字符串
substrings_13 = [','.join(batch) for batch in batches_13]

按每组39个符号拆分

batches_39 = itertools.batched(symbols_list, 39)
substrings_39 = [','.join(batch) for batch in batches_39]

不用itertools的手动拆分方法

如果不想依赖itertools,直接用列表切片也能实现:

# 每组13个的手动拆分
substrings_13 = []
for idx in range(0, len(symbols_list), 13):
    # 切片取当前组的符号,再拼接成字符串
    substr = ','.join(symbols_list[idx:idx+13])
    substrings_13.append(substr)

# 每组39个的手动拆分同理
substrings_39 = []
for idx in range(0, len(symbols_list), 39):
    substr = ','.join(symbols_list[idx:idx+39])
    substrings_39.append(substr)

总结

核心就是别直接对字符串用拆分工具,先把字符串还原成符号元素的列表,再按数量分组,最后重新拼接成子字符串——这样就能保证拆分的是完整的符号,而不是单个字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:39:56