gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:13 24 4
gpt4 key购买 nike

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

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com