Python输入函数说明

时间:2017-08-18 22:30:38

标签: python numpy input

有人可以解释以下功能的作用:

list()
map()
split()

在这行代码的上下文中请:

input = list(map(int,input().split()))

最后,应该是:

int,input()

而不是:

int(input())

谢谢!

3 个答案:

答案 0 :(得分:2)

所有这些功能都是标准库的成员,并由official documentation覆盖。

话虽如此,我将简要总结一下。

  1. listiterable变为列表。在这种情况下,iterable是map对象。

  2. map接受一个函数f(或任何可调用的,真的)和一个可迭代的iter并生成另一个iterable,其中callable应用于{{{}}中的每个元素1}}。

    在您的情况下,callable是iter,它试图将其参数转换为整数。 int是将函数应用于元素集合的常用术语,但是' Pythonic'}方法是使用列表理解:

    map
  3. [f(x) for x in iterable] == list(map(f, iterable)) split对象的一种方法,它在给定分隔符的每次出现时划分给定的字符串,返回一个列表。如果省略separator参数,则默认为空格。

  4. 将所有内容放在一起,您将从stdin读取输入,将结果字符串拆分为多个字符串,将str映射到每个项目(将它们转换为整数,或者在输入上引发异常,如{{ 1}})并将映射转换为列表。

    然后通过将结果分配给int来影响内置内容,这通常是一个坏主意(想象'words instead of numbers'导致错误时的混淆)。

    回答你的第二个问题:不,因为input有两个不同的论点。

    如果我在生产环境中使用它,我会稍微重写一下:

    input()

    map的参数是对用户的提示(当然,它是可选的)。

答案 1 :(得分:1)

让我们把它分解 input = list(map(int,input().split()))

map(int, input().split())调用int()函数,这些函数为从input().split()

返回的每个对象返回一个int

现在map在Python 2.7中返回一个列表对象,在Python 3中返回一个地图对象。如果你正在运行2.7那么list(..)就没用了。在3中它是必需的。

关于您的第二个问题,map()有两个参数,因此需要int, input(),因为int(input())被视为单个参数。

input = list(map(int,input().split()))

答案 2 :(得分:1)

input().split()从用户处获取一行键盘输入并返回单词列表(以空格分隔)。例如,如果用户键入the quick brown fox,则会返回['the', 'quick', 'brown', 'fox']

map()接受一个函数和一系列值,调用序列中每个值的函数,并返回所有结果的序列。例如,map(int, ['1', '2', '3'])会返回[1, 2, 3]

最后,list()获取一系列值并将其作为列表返回。

总的来说,您的示例代码行接受来自用户的输入字符串,将其拆分为单词列表,对每个单词调用int(),并汇总返回值的最终列表。

要回答关于int的问题,是的,在这种情况下,这是调用它的正确方法。 map()接受函数 object ;你实际上并没有亲自打电话给int()