python将混合列表拆分结果转换/强制转换为in

2024-04-20 00:41:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种更优雅的/pythonic的方法可以获得与以下代码相同的结果:

num1, num2, string = input().split() num1 = int(num1) num2 = int(num2)

其中num1(1<;=num1<;=15)和num2(5<;=num2<;=100)是整数,string是只由大写字母组成的字符串。在


Tags: 方法字符串代码ltinputstring整数大写字母
3条回答

您可以预先定义各个类型的序列,并使用zip(在python3中)直接转换它们。在

types = (int, int, str)
num1, num2, string = (typ(value) for typ, value in zip(types, input().split()))
input_string = "1 2 rand_string"
num1, num2, string = [ int(i) if i.isdigit() else i for i in input_string.split() ]

对于map()str.isdigit()函数,假设输入只需要严格顺序的整数和文本值:

num1, num2, str1 = map(lambda x: x if not x.isdigit() else int(x), input().split())
print(type(num1), type(num2), type(str1))

输出(对于输入"10 55 hello"):

^{pr2}$

相关问题 更多 >