Python如何将嵌套列表中的元组格式字符串转换为整数元组
字符串元组转整数元组实现方案
需求说明
需要保留原有二维列表的嵌套结构,将列表内格式为(x,y)的字符串元素,转换为两个整数组成的元组类型。
- 原始输入格式:
[['(0,3)', '(1,2)', '(2,2)'], ['(0,3)', '(1,2)', '(2,2)']]
- 目标输出格式:
[[(0,3), (1,2), (2,2)], [(0,3), (1,2), (2,2)]]
代码实现
写法1:易读的循环实现
逻辑直观,适合新手理解:
raw_data = [['(0,3)', '(1,2)', '(2,2)'], ['(0,3)', '(1,2)', '(2,2)']] converted_data = [] for sub_list in raw_data: temp_sub = [] for item_str in sub_list: # 移除首尾括号,按逗号拆分数字字符串 a, b = item_str.strip('()').split(',') # 转整数后组装为元组 temp_sub.append((int(a), int(b))) converted_data.append(temp_sub)
写法2:简洁嵌套推导式实现
代码更精简,执行效率和可读性平衡较好:
raw_data = [['(0,3)', '(1,2)', '(2,2)'], ['(0,3)', '(1,2)', '(2,2)']] converted_data = [ [tuple(map(int, item.strip('()').split(','))) for item in sub_list] for sub_list in raw_data ]
注意事项
禁止直接使用
eval(item)做转换:如果输入数据来源不可控,eval函数会执行字符串内的任意代码,存在严重的安全漏洞。
内容的提问来源于stack exchange,提问作者Francisco
相关产品推荐
相关产品推荐

