如何在Python中按因子乘嵌套列表中的所有元素
嵌套列表元素批量乘2的实现方案
给定原始嵌套列表:
lst = [[0,1,2,3,4,5], [6,7,8,9,10,11], [18,19,20,21,22,23], [24,25,26,27,28,29]]
需要将每个元素乘以因子2,得到目标结果:
lst = [[0,2,4,6,8,10], [12,14,16,18,20,22], [36,38,40,42,44,46], [48,50,52,54,56,58]]
以下是通过逐行逐列遍历实现的两种函数方案:
方案1:直接修改原列表
该方案直接对输入列表进行修改,无需额外创建新列表:
def multiply_nested_list(lst, factor): # 遍历外层列表的每一行 for row_idx in range(len(lst)): # 遍历当前行的每个元素 for col_idx in range(len(lst[row_idx])): lst[row_idx][col_idx] *= factor return lst # 调用示例 original_lst = [[0,1,2,3,4,5], [6,7,8,9,10,11], [18,19,20,21,22,23], [24,25,26,27,28,29]] multiply_nested_list(original_lst, 2) print(original_lst) # 输出目标结果
方案2:生成新列表(不修改原数据)
如果需要保留原始列表内容,可创建新列表存储计算结果:
def multiply_nested_list_new(lst, factor): new_list = [] # 遍历每一行 for row in lst: new_row = [] # 遍历当前行的每个元素,计算后加入新行 for num in row: new_row.append(num * factor) new_list.append(new_row) return new_list # 调用示例 original_lst = [[0,1,2,3,4,5], [6,7,8,9,10,11], [18,19,20,21,22,23], [24,25,26,27,28,29]] result_lst = multiply_nested_list_new(original_lst, 2) print(result_lst) # 输出目标结果 print(original_lst) # 原始列表保持不变
内容的提问来源于stack exchange,提问作者holvic
相关产品推荐
相关产品推荐

