我试图在将所有函数foo()应用到所有元素之后,从列表中创建一个不可修改的对象,特别是frozenset。也就是说:
my_list = ['a_1', 'a_2', ... , 'a_n']
给定列表my_list,我要执行的是对功能foo()的所有元素执行并生成一个冻结集。像这样的东西:
my_list = frozenset([foo('a_1'), foo('a_2'), ... , foo('a_n')])
我不知道是否有任何方法可以单步执行此操作,因为如果我没记错的话,对于冻结集合的创建,我们将迭代列表中的元素,如果添加迭代函数[[foo()的应用程序给了我两次通过,我的直觉告诉我可以一次完成。
有什么办法可以通过利用迭代来创建集合吗?map
非常合适:frozenset(map(foo, my_list))
或与生成器一起使用生成器表达式:
frozenset(foo(x) for x in my_list)
my_set = frozenset(map(foo, my_list))
或生成器:
my_set = frozenset(foo(x) for x in my_list)