使用inline for循环初始化列表

2024-07-05 09:57:10 发布

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

我正在使用以下代码初始化列表对象。在

list = [
    func1(centroids[0],value),
    func1(centroids[1],value),
    ....,
    func1(centroids[n],value)]

我正试图用一种更优雅的方式来使用一些内联迭代。下面是一种可能的伪代码。在

^{pr2}$

我不清楚如何以迭代的方式调用func1。你能提出一个可能的实施方案吗?在


Tags: 对象代码列表value方式listcentroidsfunc1
3条回答

对于对象列表,Python知道如何直接迭代它,这样就可以消除大多数其他答案中显示的索引

res = [func1(c, value) for c in centroids]

就这些了。

一个简单的列表理解由“template”列表元素组成,后跟遍历所需值的迭代器。

my_list = [func1(centroids[0],value) 
               for n in range(n+1)]

使用此代码:

list = [func1(centroids[x], value) for x in range(n)]

这叫做列表理解。将希望列表包含的值放在前面,然后紧跟for循环。可以将for循环的迭代变量与值一起使用。在这段代码中,您从函数调用func1(centroids[x], value)设置变量的n个数。如果变量n等于,比如说,4,list = [func1(centroids[0], value), func1(centroids[0], value), func1(centroids[0], value), func1(centroids[0], value)]将等于上面的代码

相关问题 更多 >