Python中如何将字符串数字列表两两组合转换为整数列表?
Python列表字符串数字合并解决方案
特定场景:两两分组合并为整数
针对给出的示例列表['4', '5', '6', '8', '5', '9', '6', '2', '6', '5'],可通过步长为2的切片遍历实现分组合并,代码如下:
origin_list = ['4', '5', '6', '8', '5', '9', '6', '2', '6', '5'] # 列表推导式实现 result = [int(''.join(origin_list[i:i+2])) for i in range(0, len(origin_list), 2)] print(result) # 输出结果:[45, 68, 59, 62, 65]
通用场景:自定义N个连续元素合并为整数
可以封装通用函数,支持指定每组的元素个数,适配不同的合并需求:
def combine_nums(input_list: list[str], group_size: int) -> list[int]: if group_size < 1: raise ValueError("分组长度必须大于等于1") return [ int(''.join(input_list[idx:idx+group_size])) for idx in range(0, len(input_list), group_size) ] # 测试用例1:两两分组 print(combine_nums(['4', '5', '6', '8', '5', '9', '6', '2', '6', '5'], 2)) # 输出:[45, 68, 59, 62, 65] # 测试用例2:2个元素合并 print(combine_nums(['4','5'], 2)) # 输出:[45] # 测试用例3:3个元素合并 print(combine_nums(['1','2','3','4','5','6'], 3)) # 输出:[123, 456]
补充说明
如果输入列表长度不是分组长度的整数倍,最后不足一组的元素会自动合并为单个整数,若需要舍弃最后不足一组的元素,可将遍历的终止条件改为len(input_list) - group_size + 1即可。
内容的提问来源于stack exchange,提问作者R.A Kumudu
相关产品推荐
相关产品推荐

