Python映射,函数返回可变数量的值

2024-09-29 21:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

在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函数?你知道吗


Tags: the函数in列表for标准returndef
2条回答

你的东西看起来不错。我只需要去掉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进行展平的单行程序:

import itertools
result = list(itertools.chain.from_iterable(map(the_func, range(10))))
print(result)

这比嵌套的列表理解版本(3.3秒对4.1秒)平均快1秒,使用1 mil。迭代。你知道吗

相关问题 更多 >

    热门问题