Python 3 Map function is not Calling up function

前端 未结 3 852
南旧
南旧 2020-12-03 06:49

Why doesn\'t following code print anything:

#!/usr/bin/python3
class test:
    def do_someting(self,value):
        print(value)
        return value

    de         


        
3条回答
  •  难免孤独
    2020-12-03 07:31

    map() returns an iterator, and will not process elements until you ask it to.

    Turn it into a list to force all elements to be processed:

    list(map(self.do_someting,range(10)))
    

    or use collections.deque() with the length set to 0 to not produce a list if you don't need the map output:

    from collections import deque
    
    deque(map(self.do_someting, range(10)))
    

    but note that simply using a for loop is far more readable for any future maintainers of your code:

    for i in range(10):
        self.do_someting(i)
    

提交回复
热议问题