假设我要创建输入列表
3 4 5 6 7
没有间距。 list(map(int, input().split()))
和list(map(int,input().replace(' ','')))
之间有技术区别吗?
我正在为问题on HackerRank输入此类列表。 split()
版本似乎总是可以使用,但是replace(' ','')
版本似乎仅适用于短长度输入。
答案 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所描述的问题。