如何遍历嵌套列表并将整数字符串转换为整数?
解决方案:将嵌套列表中的整数字符串转换为整数
这里有几种简单可行的方案帮你处理这个嵌套列表的转换需求,都是Python里常用的实现方式:
1. 列表推导式(最简洁高效)
这是Python处理这类问题最推荐的写法,一行代码就能搞定,可读性也很强:
a = [['fuzzy', '12'], ['drake', '6'], ['lebron', '23'], ['davis', '3'], ['jason', '16'], ['jon', '33'], ['jeff', '20'], ['rich', '33'], ['big', '100'], ['small', '2'], ['jack', '11'], ['queen', '12'], ['king', '13']] # 遍历每个子列表,保留名字,将数字字符串转为整数 result = [[name, int(num_str)] for name, num_str in a] print(result)
执行后就会输出你想要的格式:[['fuzzy', 12], ['drake', 6], ...]
2. 普通for循环(适合新手理解)
如果刚接触Python,这种分步处理的方式更容易理清逻辑:
a = [['fuzzy', '12'], ['drake', '6'], ['lebron', '23'], ['davis', '3'], ['jason', '16'], ['jon', '33'], ['jeff', '20'], ['rich', '33'], ['big', '100'], ['small', '2'], ['jack', '11'], ['queen', '12'], ['king', '13']] result = [] for sub_list in a: # 取出子列表中的名字和数字字符串 name = sub_list[0] # 转换数字字符串为整数 num = int(sub_list[1]) # 将处理后的子列表添加到结果中 result.append([name, num]) print(result)
这种写法把每一步都拆解开,能清楚看到数据是怎么被处理和收集的。
3. map + lambda(函数式编程风格)
如果你习惯函数式编程的写法,可以用map配合匿名函数来实现:
a = [['fuzzy', '12'], ['drake', '6'], ['lebron', '23'], ['davis', '3'], ['jason', '16'], ['jon', '33'], ['jeff', '20'], ['rich', '33'], ['big', '100'], ['small', '2'], ['jack', '11'], ['queen', '12'], ['king', '13']] # 用lambda处理每个子列表,map返回迭代器后转成列表 result = list(map(lambda x: [x[0], int(x[1])], a)) print(result)
这种写法比较紧凑,适合喜欢简洁风格的开发者。
额外补充:健壮性处理(可选)
如果担心你的列表里可能存在无法转换为整数的字符串(比如带字母或符号),可以加个异常处理,避免程序崩溃:
a = [['fuzzy', '12'], ['drake', '6'], ['invalid', 'abc'], ['king', '13']] result = [] for sub_list in a: name = sub_list[0] try: num = int(sub_list[1]) except ValueError: # 转换失败时可以选择保留原字符串,或者做其他自定义处理 num = sub_list[1] result.append([name, num]) print(result) # 输出:[['fuzzy', 12], ['drake', 6], ['invalid', 'abc'], ['king', 13]]
内容的提问来源于stack exchange,提问作者Jason Lee
相关产品推荐
相关产品推荐

