当前位置: 首页 > news >正文

Python针对大规模数据使用”sys模块加速I/O操作“:

常用输出:

sys.stdout.write()

  • 读取一行:
import sys

object = sys,stdin.readline().split() # 写法1
input = sys.stdin.readline # 写法2 适用于需要多次调用输出,节省书写长度
object = input().split()
# 测试代码:

import sys

def main():
    input = sys.stdin.readline  # 快速读取一行
    t = int(input())
    res = []
    for _ in range(t):
        a, b = map(int, input().split())
        res.append(str(a + b))
    sys.stdout.write("\n".join(res))

if __name__ == '__main__':
    main()
    
# 测试数据:
1
1 2

  • 读取所有行:

 

import sys

object = sys.stdin.readlines().split() 
# 需要手动解释,切换到下一行后先 ctrl+z(手动结束输入),后 enter   ---> windows
# Linux、macos 按下 ctrl+d

import sys

def main():
    lines = sys.stdin.readlines()
    # 示例处理:将每行字符串反转
    res = [line.strip()[::-1] for line in lines] # 去掉所有空白字符
    sys.stdout.write("\n".join(res))

if __name__ == '__main__':
    main()

# 测试数据
1 2 3 4 5 6
123456
# 二者输出结果都一样:654321

  • 读取所有输入:
import sys

data = sys.stdin.read().split()
# 测试代码:

import sys

def main():
    data = sys.stdin.read().split()  # 读取所有输入,并按空白字符分割
    it = iter(data)
    t = int(next(it))
    res = []
    for _ in range(t):
        a = int(next(it))
        b = int(next(it))
        res.append(str(a + b))
    sys.stdout.write("\n".join(res))

if __name__ == '__main__':
    main()

# 测试数据:
3
1 2
3 4
5 6

  • 处理二进制 I/O:
import sys

data = sys.stdin.buffer.read() # 读取原始的二进制数据(bytes),后续按需手动解码

# sys.stdin.buffer.read() # 字节流层面 返回底层字节流,不会自动解码
# sys.stdin.read() # 文本流层次 自动将底层的字节流解码成字符串

# 读取二进制输入并解码(假设为 UTF-8 编码)
data = sys.stdin.buffer.read().decode('utf-8').split() 
# 测试代码:

import sys

def main():
    # 读取二进制输入并解码(假设为 UTF-8 编码)
    data = sys.stdin.buffer.read().decode('utf-8').split()
    it = iter(data)
    t = int(next(it))
    res = []
    for _ in range(t):
        a = int(next(it))
        b = int(next(it))
        res.append(str(a + b))
    # 输出前先编码成二进制
    sys.stdout.buffer.write("\n".join(res).encode('utf-8'))

if __name__ == '__main__':
    main()

http://www.dtcms.com/a/98393.html

相关文章:

  • 21天Python计划:函数简单介绍
  • PCBB印刷电路板缺陷检测YOLO数据集分享
  • LeetCode hot 100—两两交换链表中的节点
  • Redis场景问题1:缓存穿透
  • 用python压缩图片大小
  • 算法-广度优先搜索
  • WSL系统找不到指定的文件
  • 接口自动化——初识pytest
  • (头歌作业—python)3.2 个人所得税计算器(project)
  • 智能发光斑马线:点亮城市道路安全之光
  • DDR(Double Data Rate)详解
  • 云边端协同
  • vue 脚手架解决跨域问题
  • 2022年12月青少年软件编程(图形化)等级考试三级编程题
  • 在树莓派5(8G版)上运行Ollama + LLM
  • NG-ZORRO中tree组件的getCheckedNodeList怎么使用
  • 26考研——排序_选择排序_选择排序的基本思想 简单选择排序(8)
  • 每天一篇目标检测文献(六)——Part One
  • 小林coding-12道Spring面试题
  • 自然语言处理(17:(第五章2.)梯度消失和LSTM(详细拆解))
  • WebSocket通信的握手阶段
  • 基于 WebAssembly 的 Game of Life 交互实现
  • ArrayList和LinkedList比较
  • 使用 Python 进行链上数据监控:让区块链数据触手可及
  • 深入解析音频:格式、同步及封装容器
  • SQL Server:sys.dm_hadr_physical_seeding_stats
  • 2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)
  • [项目]基于FreeRTOS的STM32四轴飞行器: 十六.激光测距定高功能
  • 【Web前端】解锁JavaScript中Web存储API的秘密
  • LoRA 模型微调框架核心原理及实现步骤