Python中如何依据关联值展平子数组并转换元素类型?
Python展平关联子数组并转换元素类型
针对需求,这里提供两种适合新手的实现方式:
方法一:嵌套循环(直观易懂)
通过两层循环遍历原数据,逐层处理每个元素:
have = [(16, ['1', '2', '3', '4']), (17, ['1', '2'])] want = [] # 外层循环取出每个元组的数值和字符串列表 for num, str_list in have: # 内层循环遍历列表中的每个字符串,转成整数后组合成新元组 for s in str_list: want.append((num, int(s))) print(want) # 输出结果:[(16, 1), (16, 2), (16, 3), (16, 4), (17, 1), (17, 2)]
方法二:列表推导式(简洁高效)
用Python的列表推导式可以一行完成逻辑,写法更紧凑:
have = [(16, ['1', '2', '3', '4']), (17, ['1', '2'])] want = [(num, int(s)) for num, str_list in have for s in str_list] print(want) # 输出结果:[(16, 1), (16, 2), (16, 3), (16, 4), (17, 1), (17, 2)]
核心逻辑说明
- 外层遍历
have中的每个元组,解构得到num(关联数值)和str_list(待处理的字符串数组) - 内层遍历
str_list的每个元素,通过int(s)将字符串转换为整数 - 将
num与转换后的整数组合成新元组,最终收集成目标列表
内容的提问来源于stack exchange,提问作者Ismail Akrim
相关产品推荐
相关产品推荐

