Python使用map函数未得到预期二维列表结果,请求技术帮助
问题:将嵌套列表中每个元素乘以2的代码修正
原代码存在两处核心问题:
- 语法错误:
map函数的调用格式完全错误,你错误地将生成器表达式和可迭代对象混在一起,同时lambda的参数定义冗余且逻辑混乱; - 冗余变量:提前定义的空列表
A、B完全没必要,循环中的A已经覆盖了全局变量,属于无效定义。
修正后的代码(基于原逻辑调整)
lst = [ [1,2,3], [4,5,6], [7,8,9], [10,11,12] ] C = [] for sublist in lst: # map接收lambda函数和可迭代对象sublist,每个元素乘2后转成列表 doubled_sublist = list(map(lambda x: x*2, sublist)) C.append(doubled_sublist) print(C) # 输出:[[2, 4, 6], [8, 10, 12], [14, 16, 18], [20, 22, 24]]
更简洁的写法(Python推荐的列表推导式)
嵌套列表推导式更直观,代码更简洁:
lst = [ [1,2,3], [4,5,6], [7,8,9], [10,11,12] ] C = [[x*2 for x in sublist] for sublist in lst] print(C)
内容的提问来源于stack exchange,提问作者Ham
相关产品推荐
相关产品推荐

