2024-09-29 21:22:44 发布
网友
在python3中,我有一个函数返回一个可变大小的列表
我想在一个列表上运行这个函数并连接结果。 例如:
def the_func(x): return [x]*x def mapvar(f,v): ans=[] for x in v: ans.extend(f(x)) return ans print (mapvar(the_func,range(10)))
python中是否有这样做的最佳实践?是否有标准的mapvar函数?你知道吗
你的东西看起来不错。我只需要去掉flatten并使用内置的map。你知道吗
flatten
map
def the_func(x): return [x] * x def flatten(lst): return [x for subl in lst for x in subl] print(flatten(map(the_func, range(10))))
由于问题被标记为[python-3.x],这里有一个使用map进行投影和itertools.chain.from_iterable进行展平的单行程序:
itertools.chain.from_iterable
import itertools result = list(itertools.chain.from_iterable(map(the_func, range(10)))) print(result)
这比嵌套的列表理解版本(3.3秒对4.1秒)平均快1秒,使用1 mil。迭代。你知道吗
你的东西看起来不错。我只需要去掉
flatten
并使用内置的map
。你知道吗由于问题被标记为[python-3.x],这里有一个使用
map
进行投影和itertools.chain.from_iterable
进行展平的单行程序:这比嵌套的列表理解版本(3.3秒对4.1秒)平均快1秒,使用1 mil。迭代。你知道吗
相关问题 更多 >
编程相关推荐