假设我有一个类,其构造函数接受一个整数参数。我有一个整数列表。如何使用 map()
创建一个该类的对象列表,其中每个对象都是使用其对应的整数构造的?
假设我有一个类,其构造函数接受一个整数参数。我有一个整数列表。如何使用 map()
创建一个该类的对象列表,其中每个对象都是使用其对应的整数构造的?
像其他函数一样吗?
>>> class Num(object):
... def __init__(self, i):
... self.i = i
...
>>> print map(Num, range(10))
[<__main__.Num object at 0x100493450>, <__main__.Num object at 0x100493490>, <__main__.Num object at 0x1004934d0>, <__main__.Num object at 0x100493510>, <__main__.Num object at 0x100493550>, <__main__.Num object at 0x100493590>, <__main__.Num object at 0x1004935d0>, <__main__.Num object at 0x100493610>, <__main__.Num object at 0x100493650>, <__main__.Num object at 0x100493690>]
map(lambda x: MyClass(..., x,...), list_of_ints)
同时考虑使用列表解析来代替 map
:
[MyClass(..., x, ...) for x in list_of_ints]
MyClass(...,x,...)
是你的类,list_of_ints
是你的整数列表。In [1]: import itertools
In [2]: class C:
...: def __init__(self, arg1, arg2):
...: pass
...:
In [3]: classes = itertools.starmap(C, [(1,2), (3,4)])
In [4]: print list(classes)
[<__main__.C instance at 0x10e99b7e8>, <__main__.C instance at 0x10e99b830>]