Python 中的自定义长度矩阵

pythonserver side programmingprogramming更新于 2025/10/11 5:00:17

有时,在使用 Python 创建矩阵时,我们可能需要控制给定元素在结果矩阵中重复的次数。在本文中,我们将了解如何在元素以列表形式给出时创建具有所需元素数量的矩阵。

使用 zip

我们声明一个包含矩阵中要使用的元素的列表。然后我们声明另一个列表,它将保存元素在矩阵中的出现次数。使用 zip 函数,我们可以创建结果矩阵,该矩阵将涉及一个 for 循环来组织元素。

示例

listA = ['m', 'n', 'p','q']

# 元素数量
elem_count = [1,0,3,2]

# 给定列表
print("给定元素列表:" ,listA)
print("元素数量:",elem_count)

# 创建矩阵
res = [[x] * y for x, y in zip(listA, elem_count)]

# 结果
print("新矩阵为:" ,res)

输出

运行上述代码得到以下结果 −

给定元素列表:['m', 'n', 'p', 'q']
元素数量:[1, 0, 3, 2]
新矩阵为:[['m'], [], ['p', 'p', 'p'], ['q', 'q']]

使用 map 和 mul

在此方法中,我们使用来自操作符模块的 mul 方法代替上面的 zip 方法。此外,map 函数将 mul 方法应用于列表中的每个元素,因此不需要 for 循环。

示例

from operator import mul

listA = ['m', 'n', 'p','q']

# 元素数量
elem_count = [1,0,3,2]

# 给定列表
print("给定元素列表:",listA)
print("元素数量:",elem_count)

# 创建矩阵
res = list(map(mul, listA, elem_count))

# 结果
print("新矩阵为:",res)

输出

运行上述代码得到以下结果 −

给定元素列表:['m', 'n', 'p', 'q']
元素数量:[1, 0, 3, 2]
新矩阵为:['m', '', 'ppp', 'qq']

相关文章


有用资源