如何在Python中从同一空格分隔行读取不同数据类型的输入?
一行代码实现字符串与整数的拆包读取
当然可以!一行代码就能轻松搞定这个需求,这里有几种实用的写法,你可以根据可读性和场景选择:
最直观的写法(推荐)
用分号分隔两个操作,先拆分输入再转换类型,可读性拉满:
a, b = input().split(); b = int(b)
当你输入WHALES 2时,a会是字符串'WHALES',b会被转换成整数2。这种写法的好处是一目了然,谁看都懂,日常开发里用这个最省心。
纯表达式写法(适合追求紧凑场景)
如果想避免分号,也可以用匿名函数来一次性处理拆分和转换:
a, b = (lambda parts: (parts[0], int(parts[1])))(input().split())
这个写法把input().split()的结果传给lambda函数,直接返回转换后的元组再拆包,也是一行完成,但可读性稍弱一些,适合对代码紧凑度有要求的场景。
注意事项
- 要保证输入恰好包含两个值,否则会触发
ValueError(拆包数量不匹配); - 如果第二个输入不是合法的整数(比如输入
WHALES abc),也会抛出ValueError,如果需要容错的话可以结合try-except,但那会超出单行的范畴啦。
内容的提问来源于stack exchange,提问作者BOTBOT
相关产品推荐
相关产品推荐

