如何创建特定重复模式的二进制矩阵?Python高效实现方案
高效生成并打印指定二进制矩阵的Python实现
核心思路
要高效处理1000行的打印任务,关键在于减少重复计算与IO操作:
- 预先生成每一列对应的二进制字符串模板,避免重复构造字符串
- 批量生成连续的3行(或剩余不足3行的部分),最后一次性拼接所有行并打印,大幅降低多次
print带来的IO开销
代码实现
# 可自定义参数:列数、总行数 column_count = 6 total_rows = 1000 # 生成每一列对应的二进制模板字符串 column_templates = [ '0' * col_index + '1' + '0' * (column_count - col_index - 1) for col_index in range(column_count) ] # 批量构建所有行 result_rows = [] remaining_rows = total_rows while remaining_rows > 0: for template in column_templates: if remaining_rows <= 0: break # 取当前可添加的行数(最多3行) add_num = min(3, remaining_rows) result_rows.extend([template] * add_num) remaining_rows -= add_num # 一次性打印所有行,提升效率 print('\n'.join(result_rows))
代码说明
- 模板生成:通过列表推导快速生成每一列对应的二进制字符串,比如第0列对应
'100000',第1列对应'010000'等 - 批量构建行:循环遍历模板,每次添加3行(或剩余的行数),用
extend一次性添加多行,比逐行append更高效 - 高效打印:将所有行用换行符拼接成一个大字符串后一次性打印,避免多次调用
print的IO延迟
内容的提问来源于stack exchange,提问作者Captain_Dev88
相关产品推荐
相关产品推荐

