📅  最后修改于: 2023-12-03 14:56:22.404000             🧑  作者: Mango
本程序用于统计二进制矩阵中每行和每列中 1 和 0 的数量,便于后续分析和处理。以下是完整代码和解释。
def count_ones_zeros(matrix):
"""
计算二进制矩阵中每行和每列中 1 和 0 的数量
:param matrix: 二进制矩阵,由0和1组成的列表,每个元素为一行
:return: 包含两个字典的元组,第一个字典记录每行中1和0的数量,第二个记录每列中1和0的数量
"""
rows = len(matrix) # 获取矩阵行数
cols = len(matrix[0]) # 获取矩阵列数
row_count = {"ones": [], "zeros": []} # 记录每行中1和0的数量
col_count = {"ones": [], "zeros": []} # 记录每列中1和0的数量
# 统计每行中1和0的数量
for i in range(rows):
ones_count = 0
zeros_count = 0
for j in range(cols):
if matrix[i][j] == 1:
ones_count += 1
else:
zeros_count += 1
row_count["ones"].append(ones_count)
row_count["zeros"].append(zeros_count)
# 统计每列中1和0的数量
for j in range(cols):
ones_count = 0
zeros_count = 0
for i in range(rows):
if matrix[i][j] == 1:
ones_count += 1
else:
zeros_count += 1
col_count["ones"].append(ones_count)
col_count["zeros"].append(zeros_count)
return row_count, col_count
解释:
count_ones_zeros
函数用于计算二进制矩阵中每行和每列中 1 和 0 的数量。matrix
为二进制矩阵,由0和1组成的列表,每个元素为一行。以下为示例测试代码:
matrix = [[1, 0, 1], [0, 1, 0], [1, 0, 0]]
row_count, col_count = count_ones_zeros(matrix)
print("每行中1的数量:", row_count["ones"])
print("每行中0的数量:", row_count["zeros"])
print("每列中1的数量:", col_count["ones"])
print("每列中0的数量:", col_count["zeros"])
输出结果:
每行中1的数量: [2, 1, 1]
每行中0的数量: [1, 2, 2]
每列中1的数量: [2, 1, 1]
每列中0的数量: [1, 2, 2]
以上就是用于计算二进制矩阵中 1 和 0 集合的Python程序,希望能对程序员们有所帮助。