如何在Python中使用"map"函数?(如何重写for循环?)

Lar*_*der 4 python map

我有一个类的数组,我想创建它们的对象.这有效:

    classArray = [Auto, Wheel]
    objectArray = []
    for myClass in classArray:
        objectArray += [myClass()]
Run Code Online (Sandbox Code Playgroud)

我可以使用map函数来完成相同的操作吗?

    objectArray = map( ??? , classArray)
Run Code Online (Sandbox Code Playgroud)

如果这是一个愚蠢的问题,我道歉.我对Python很新.

谢谢!

Don*_*ner 9

您可以使用列表理解.许多人认为它们比map功能更受欢迎.

objectArrray = [ c() for c in classArray ]
Run Code Online (Sandbox Code Playgroud)

如果你坚持使用map,你可以做到

map(lambda c: c(), classArray)
Run Code Online (Sandbox Code Playgroud)

在这里,我正在创建一个匿名函数lambda,只需获取该项,并调用它.如果您不熟悉map,则需要1参数函数作为第一个参数.

  • 从技术上讲,你可以在不定义自己的函数的情况下这样做:`map(type .__ call __,classArray)`.解释为什么这个工作需要深入研究语言的内容,而不是适合新的Python用户,但我想我还是会提到它. (2认同)