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

时间:2019-04-10 00:35:23

标签: python python-3.x

假设我要创建输入列表

3 4 5 6 7

没有间距。 list(map(int, input().split()))list(map(int,input().replace(' ','')))之间有技术区别吗?

我正在为问题on HackerRank输入此类列表。 split()版本似乎总是可以使用,但是replace(' ','')版本似乎仅适用于短长度输入。

2 个答案:

答案 0 :(得分: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]

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

答案 1 :(得分:0)

这两种方法非常不同。 Replace()返回一个str对象,而split()返回一个字符串列表。您的map()函数将在不同类型上进行迭代,从而导致Loocid所描述的问题。