我正在使用以下代码初始化我的列表对象。
list = [
func1(centroids[0],value),
func1(centroids[1],value),
....,
func1(centroids[n],value)]
我正在尝试使用内联迭代更优雅的方式。以下是一种可能方式的伪代码。
list = [value for value in func1(centroids[n],value)]
我不清楚如何以迭代方式调用func1。你能建议一个可能的实施吗?
答案 0 :(得分:2)
一个简单的列表理解由“template”列表元素组成,后跟迭代所需的迭代器。
my_list = [func1(centroids[0],value)
for n in range(n+1)]
答案 1 :(得分:2)
对于一个对象列表,Python知道如何直接迭代它,这样你就可以消除大多数其他答案中显示的索引,
res = [func1(c, value) for c in centroids]
这就是它的全部。
答案 2 :(得分:1)
使用此代码:
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)]
将等于上面的代码