list(int(input()).split())
和map(int,input().split())
之间的区别是,从用户那里获得多个输入?
答案 0 :(得分:1)
让我们仔细检查它们:
list(int(input()).split())
扩展为
list( # Make a list out of...
int( # the value of...
input() # input from the user,
) # converted to an integer.
.split() # Then, split that.
)
这没有道理。假设您输入的内容类似15
。 input()
函数返回字符串'15'
,该字符串将转换为整数15
。整数没有.split()
操作,因此您得到SyntaxError
。
现在,让我们看一下map(int,input().split())
:
map( # Apply the function...
int # (that is, `int()`)
, # ...to every element in the iterable...
input() # (First, take the input from the user,
.split() # and then split it)
) # ...and return all that as a list
这次,我们输入类似1 5 6 11 13
的内容。
input()
函数返回字符串'1 5 6 11 13'
。 .split()
函数,该函数返回由空格分隔的子字符串列表-即,它返回列表['1', '5', '6', '11', '13']
。不过,这些仍然是字符串,我们需要整数。 int()
应用于该列表的每个元素,这为我们提供了最终结果[1, 5, 6, 11, 13]
,但它位于map
数据结构中(对于python,它更有效在这种情况下,请创建一个完整列表)list
以方便使用-只需将整个表达式包含在list(...)
中。