You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何实现类似C++的单行多类型顺序输入?

Python单行读取不同类型输入的简洁写法

在C++中,我们可以通过连续的>>运算符轻松从单行输入中读取不同类型的变量,示例代码如下:

int a; string b; int c;
cin >> a >> b >> c;

甚至自定义类型只要重载了>>运算符,也能以同样方式读取。

你现在用Python实现的写法是:

a,b,c = [f(x) for f,x in zip((int,str,int),input().split())]

确实可以优化得更简洁直观,这里提供几种更贴近C++风格的单行实现方式:

  • 先拆分输入再逐个转换(可读性最高,推荐):

    parts = input().split()
    a, b, c = int(parts[0]), parts[1], int(parts[2])
    

    这种写法逻辑清晰,和C++的读取思路一致,先把整行输入拆分成字符串片段,再分别转换成对应类型。

  • 用生成器表达式替代列表推导式(更节省内存):

    a, b, c = (f(x) for f, x in zip((int, str, int), input().split()))
    

    把原写法中的列表推导式[]换成生成器(),无需创建中间列表,效率更高。

  • 直接链式转换(适合短输入,但不推荐频繁调用split()):

    a, b, c = int(input().split()[0]), input().split()[1], int(input().split()[2])
    

    这种写法虽然是单行,但会三次调用input().split(),存在冗余,只适合简单场景。

内容的提问来源于stack exchange,提问作者Erel Segal-Halevi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:32:34