split()和replace(' ','')有什么区别?

3
假设我想要创建一个输入列表
3 4 5 6 7

没有空格。list(map(int, input().split()))list(map(int,input().replace(' ','')))之间是否存在技术差异?我正在为 HackerRank上的一个问题输入这样的列表。 split()版本似乎总是有效的,但replace(' ','')版本似乎只适用于长度较短的输入。

2个回答

4

list(map(int,input().replace(' ','')))若数字大于两位数则会失败,因为它会将每个字符转换为一个整数。

示例:

>>> inp = '1 2 3 50'

>>> list(map(int, inp.replace(' ','')))
[1, 2, 3, 5, 0]

>>> list(map(int, inp.split()))
[1, 2, 3, 50]

由于同样的原因,它也无法处理负数或浮点数。


0
这两种方法非常不同。Replace() 返回一个 str 对象,而 split() 返回一个字符串列表。你的 map() 函数将会遍历不同的类型,从而导致 Loocid 描述的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接