我想用列表制作矩阵
我想做的是以下内容。
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的新手...有人可以给我怎么做,并提供一些参考或解释吗?
答案 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)
我非常感谢大家。