如何在Python中基于两个列表调用自定义方法创建二维矩阵?
用两个列表生成自定义填充的二维矩阵
这问题我太熟悉了!以Python为例,最简洁高效的方式是用嵌套列表推导式,当然也可以用基础循环来实现(适合新手理解)。我给你详细演示:
步骤1:定义你的自定义方法
首先得先写好你的my_method,这里我用一个简单的字符串拼接示例,你可以替换成自己的业务逻辑:
def my_method(char, num): # 这里换成你实际需要的处理逻辑 return f"{char}{num}"
步骤2:准备输入列表
把你的两个列表定义好:
list_chars = ['A', 'B', 'C'] list_nums = [1, 2, 3]
步骤3:生成二维矩阵
方法一:嵌套列表推导式(推荐)
一行代码就能搞定,逻辑清晰且执行高效:
matrix = [[my_method(char, num) for num in list_nums] for char in list_chars]
这个推导式的逻辑很直观:
- 外层
for char in list_chars:遍历第一个列表的元素,对应矩阵的每一行 - 内层
for num in list_nums:遍历第二个列表的元素,对应每一行里的每个单元格 - 每个单元格的值就是
my_method(char, num)的返回结果
方法二:基础嵌套循环(适合新手理解)
如果觉得推导式有点抽象,用普通循环也能达到同样效果:
matrix = [] # 遍历第一个列表,生成每一行 for char in list_chars: current_row = [] # 遍历第二个列表,填充当前行的每个元素 for num in list_nums: current_row.append(my_method(char, num)) matrix.append(current_row)
验证结果
运行代码后,打印矩阵就能看到预期的结果:
print(matrix) # 输出:[['A1', 'A2', 'A3'], ['B1', 'B2', 'B3'], ['C1', 'C2', 'C3']]
本质上就是遍历两个列表的笛卡尔积,把每个元素组合传入自定义方法,再按行结构组织成二维数组~
内容的提问来源于stack exchange,提问作者7GS
相关产品推荐
相关产品推荐

