要按照列和对数字进行排序,可以采用以下步骤:
data = []
with open("input.txt", "r") as file:
for line in file:
row = [int(num) for num in line.strip().split()]
data.append(row)
column_sums = []
for j in range(len(data[0])):
column_sum = sum(row[j] for row in data)
column_sums.append(column_sum)
zip
函数将原始数据和列和列表打包成一个新的列表,并按照列和进行排序。sorted_data = sorted(zip(data, column_sums), key=lambda x: x[1])
sorted_data, sorted_column_sums = zip(*sorted_data)
with open("output.txt", "w") as file:
for row in sorted_data:
file.write(" ".join(str(num) for num in row) + "\n")
完整的代码示例:
data = []
with open("input.txt", "r") as file:
for line in file:
row = [int(num) for num in line.strip().split()]
data.append(row)
column_sums = []
for j in range(len(data[0])):
column_sum = sum(row[j] for row in data)
column_sums.append(column_sum)
sorted_data = sorted(zip(data, column_sums), key=lambda x: x[1])
sorted_data, sorted_column_sums = zip(*sorted_data)
with open("output.txt", "w") as file:
for row in sorted_data:
file.write(" ".join(str(num) for num in row) + "\n")
请确保在使用代码之前将文件名替换为实际的文件名,并根据自己的需求进行修改和调整。
上一篇:按照列和行分组快速聚合矩阵