python。用列表制作矩阵

时间:2019-01-22 08:50:50

标签: python matrix

我想用列表制作矩阵

我想做的是以下内容。

coll = ["AA","BB","CC","DD"]

我想做的是以下内容。

matrix = [
    ["AA:AA","AA:BB","AA:CC","AA:DD"],
    ["BB:AA","BB:BB","BB:CC","BB:DD"],
    ["CC:AA","CC:BB","CC:CC","CC:DD"],
    ["DD:AA","DD:BB","DD:CC","DD:DD"],

]

我是Python的新手...有人可以给我怎么做,并提供一些参考或解释吗?

2 个答案:

答案 0 :(得分:1)

实现此功能的Python方法是两层列表理解。

coll = ["AA","BB","CC","DD"]
matrix = [
  ['%s:%s' % (a, b) for b in coll]
  for a in coll
]

另一种可能更容易理解的方式是

matrix = []
for a in coll:
  row = []
  for b in coll:
    row.append('%s:%s' % (a, b))
  matrix.append(row)

但结果将相同:

print(matrix)
[['AA:AA', 'AA:BB', 'AA:CC', 'AA:DD'],
 ['BB:AA', 'BB:BB', 'BB:CC', 'BB:DD'],
 ['CC:AA', 'CC:BB', 'CC:CC', 'CC:DD'],
 ['DD:AA', 'DD:BB', 'DD:CC', 'DD:DD']]

答案 1 :(得分:0)

实际上,我通过*简单而*害羞的方式解决了

coll = ["AA","BB","CC","DD"]

mat = [[0]*4 for i in range(4)]

i = j =0


for xx in coll :
    for yy in coll :
        mat[i][j] = xx + ':' + yy 
        j += 1
    i += 1
    j = 0

print(mat)

我非常感谢大家。

相关问题