列表和地图之间的区别以获取多个用户输入

时间:2019-04-28 07:07:57

标签: python

list(int(input()).split())map(int,input().split())之间的区别是,从用户那里获得多个输入?

1 个答案:

答案 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.
)

这没有道理。假设您输入的内容类似15input()函数返回字符串'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的内容。

  1. input()函数返回字符串'1 5 6 11 13'
  2. 然后,我们在该字符串上调用.split()函数,该函数返回由空格分隔的子字符串列表-即,它返回列表['1', '5', '6', '11', '13']。不过,这些仍然是字符串,我们需要整数。
  3. 最后,我们将int()应用于该列表的每个元素,这为我们提供了最终结果[1, 5, 6, 11, 13],但它位于map数据结构中(对于python,它更有效在这种情况下,请创建一个完整列表)
  4. 如果需要,我们可以将其强制转换为list以方便使用-只需将整个表达式包含在list(...)中。