如何将含字母数字的字符串列表拆分为键值对字典
问题描述
给定如下列表:
['abc1234', 'appa4567', 'kkakaka9876']
需要将每个元素拆分为字母部分作为键、右侧数字部分作为对应的值,最终得到如下字典:
{ 'abc':'1234', 'appa':'4567', 'kkakaka':'9876' }
解决方案
方法一:正则表达式(推荐)
用正则匹配字符串里的字母前缀和数字后缀,代码简洁且适配多数字母+数字的组合场景:
import re original_list = ['abc1234', 'appa4567', 'kkakaka9876'] result_dict = {} for item in original_list: match = re.match(r'([a-zA-Z]+)(\d+)', item) if match: result_dict[match.group(1)] = match.group(2) print(result_dict)
输出结果:
{'abc': '1234', 'appa': '4567', 'kkakaka': '9876'}
方法二:手动遍历拆分
如果不想依赖正则库,可以逐个字符遍历找到数字起始位置,拆分字符串:
original_list = ['abc1234', 'appa4567', 'kkakaka9876'] result_dict = {} for item in original_list: split_pos = 0 while split_pos < len(item) and item[split_pos].isalpha(): split_pos += 1 result_dict[item[:split_pos]] = item[split_pos:] print(result_dict)
输出结果与方法一完全一致。
内容的提问来源于stack exchange,提问作者Zambwal
相关产品推荐
相关产品推荐

