python - 从单个行中的矩阵到字典

San*_*ich 1 python dictionary list-comprehension

矩阵

是一个长度相同的列表列表.我要返回一份表格字典

{i:(l1[i],l2[i],...,lm[i])}
Run Code Online (Sandbox Code Playgroud)

在密钥i与元组匹配的情况下,每个列表中的第i个元素.说

matrix=[[1,2,3,4],[9,8,7,6],[4,8,2,6]]
Run Code Online (Sandbox Code Playgroud)

所以这一行:

>>> dict([(i,tuple(matrix[k][i] for k in xrange(len(matrix)))) for i in xrange(len(matrix[0]))])

做得很好,输出:

{0: (1, 9, 4), 1: (2, 8, 8), 2: (3, 7, 2), 3: (4, 6, 6)}

但如果矩阵为空则失败:matrix=[].输出应该是:{}

我怎么处理这个?

Joe*_*ett 5

怎么样呢:

>>> matrix = [[1,2,3,4],[9,8,7,6],[4,8,2,6]]
>>> dict(enumerate(zip(*matrix)))
{0: (1, 5, 4), 3: (4, 8, 6), 2: (3, 7, 2), 1: (2, 6, 8)}    
>>> matrix = []
>>> dict(enumerate(zip(*matrix)))
{}
Run Code Online (Sandbox Code Playgroud)