首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用内联for循环初始化列表

使用内联for循环初始化列表
EN

Stack Overflow用户
提问于 2018-06-13 17:27:09
回答 3查看 2.7K关注 0票数 0

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

代码语言:javascript
复制
list = [
    func1(centroids[0],value),
    func1(centroids[1],value),
    ....,
    func1(centroids[n],value)]

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

代码语言:javascript
复制
list = [value for value in func1(centroids[n],value)]

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-13 20:32:50

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

代码语言:javascript
复制
res = [func1(c, value) for c in centroids]

非那样做不行。

票数 4
EN

Stack Overflow用户

发布于 2018-06-13 17:30:04

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

代码语言:javascript
复制
my_list = [func1(centroids[0],value) 
               for n in range(n+1)]
票数 2
EN

Stack Overflow用户

发布于 2018-06-13 17:29:48

使用以下代码:

代码语言:javascript
复制
list = [func1(centroids[x], value) for x in range(n)]

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50843032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档