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

如何在Python中将字符串转换为双字符元素的列表?

解决字符串按每两个字符分组为列表的问题

你的需求是把字符串'12345678'转换成每两个字符一组的列表['12','34','56','78'],先说说你现有代码的问题:

你写的list1[0:2] = Input会把字符串的每个字符拆成单独的列表元素——因为字符串是可迭代对象,赋值时会逐个插入元素,最终得到的是['1','2','3','4','5','6','7','8'],这显然不是你要的结果。

下面给你两种简单的实现方法:

方法一:列表推导式(最直观)

直接利用字符串切片,以步长2遍历字符串,每次取两个字符:

input_str = '12345678'
output = [input_str[i:i+2] for i in range(0, len(input_str), 2)]
print(output)  # 输出: ['12', '34', '56', '78']

原理:range(0, len(input_str), 2)生成0、2、4、6这些索引,input_str[i:i+2]会从索引i开始取到i+2(不包含)的子串,正好是两个字符。

方法二:使用itertools工具(适合更复杂场景)

如果需要处理字符串长度不是偶数的情况(比如最后一组补空字符或其他填充值),可以用itertools.zip_longest:

from itertools import zip_longest

input_str = '12345678'
# 定义分组函数,n为每组长度,fillvalue是填充值
def grouper(iterable, n, fillvalue=''):
    args = [iter(iterable)] * n
    return zip_longest(*args, fillvalue=fillvalue)

output = [''.join(group) for group in grouper(input_str, 2)]
print(output)  # 输出: ['12', '34', '56', '78']

这种方法扩展性更强,比如输入是'1234567',会得到['12','34','56','7'](fillvalue默认是空字符串)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:50:29