Python嵌套列表如何将元素转换为对应int、float、str数据类型
Python嵌套列表元素自动类型转换解决方案
问题分析
你的原代码无法实现预期效果,核心原因有两点:
- 调用
int(j)、float(j)、str(j)仅生成了转换后的新值,没有将结果存储或写回原列表,转换结果直接被丢弃 - 直接遍历列表拿到的
j是元素的临时拷贝,修改j本身不会同步更新原列表的对应位置,需要通过索引定位到列表元素再赋值
修正后代码
# 遍历外层列表的索引,定位每个子列表 for sub_list_index in range(len(alist)): # 遍历子列表的索引,定位每个元素 for element_index in range(len(alist[sub_list_index])): current_val = alist[sub_list_index][element_index] try: # 优先尝试转换为int result = int(current_val) except ValueError: try: # int转换失败尝试转换为float result = float(current_val) except ValueError: # 都转换失败保留为str类型 result = str(current_val) # 将转换后的结果写回原列表对应位置 alist[sub_list_index][element_index] = result
效果验证
使用你给出的示例输入运行上述代码后,alist的输出结果与你预期的完全一致:
alist = [['hello', 50, 55], ['Bye', 500.9, 100.6], ['die', 456, 700.0]]
内容的提问来源于stack exchange,提问作者Pranav Sundaram
相关产品推荐
相关产品推荐

