python - 如何使用列表理解格式化列表列表?

标签 python list matrix

我被困在程序中的一个函数上,该函数格式化由空格分隔的多行数字。到目前为止,以下代码采用未格式化的列表列表并将其放入一个由空格(不带方括号)分隔的表格中:

def printMatrix(matrix):
    return ('\n'.join('  '.join(map(str, row)) for row in matrix))

我希望所有数字在输出中都能很好地排列。我不知道如何将格式运算符插入列表理解中以实现这一点。输入始终是方阵(2x2 3x3 等) 这是需要澄清的程序的其余部分

# Magic Squares

def main():
    file = "matrix.txt"   
    matrix = readMatrix(file)
    print(printMatrix(matrix))
    result1 = colSum(matrix)
    result2 = rowSum(matrix)
    result3 = list(diagonalSums(matrix))
    sumList = result1 + result2 + result3
    check = checkSums(sumList)
    if check == True:
        print("This matrix is a magic square.")
    else:
        print("This matrix is NOT a magic square.")
def readMatrix(file):
    contents = open(file).read()
    with open(file) as contents:
        return [[int(item) for item in line.split()] for line in contents]




def colSum(matrix):
    answer = []
    for column in range(len(matrix[0])):
        t = 0
        for row in matrix:
            t += row[column]
        answer.append(t)
    return answer

def rowSum(matrix):
    return [sum(column) for column in matrix]


def diagonalSums(matrix):
    l = len(matrix[0])
    diag1 = [matrix[i][i] for i in range(l)]        
    diag2 = [matrix[l-1-i][i] for i in range(l-1,-1,-1)]
    return sum(diag1), sum(diag2)


def checkSums(sumList):
    return all(x == sumList[0] for x in sumList)

def printMatrix(matrix):
    return ('\n'.join('  '.join(map(str, row)) for row in matrix))

主函数

最佳答案

def printMatrix(matrix):
    return "\n".join((("{:<10}"*len(row)).format(*row))for row in matrix)


In [19]: arr=[[1,332,3,44,5],[6,7,8,9,100]]

In [20]: print(printMatrix(arr))
1         332       3         44        5         
6         7         8         9         100  

"{:<10}"*len(row))创建 {}对于左对齐的每个数字 10 <:10然后我们使用 str.format format(*row)解压每一行。

关于python - 如何使用列表理解格式化列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26456435/

相关文章:

r - 复制矩阵以形成列表

arrays - 我需要向我创建的二维数组添加一个值

c++ - 在 Eigen 中求解稀疏上三角系统?

python - 我可以在 pycharm 社区版中运行 Django 测试吗?

c++ - 不能在 C++ 中使用列表迭代器

python - 如何优雅地关闭 aiohttp 服务器中的 aioredis 池?

list - 检查平衡定界符函数 Haskell

arrays - 在 Kotlin 中获取索引从末尾开始计数的元素

将函数输出 append 到多个列表的 Pythonic 方法

python - 什么时候我的 Python 测试套件文件覆盖率不是 100%?