gpt4 book ai didi

python - 理解 One Line For 循环

转载 作者:行者123 更新时间:2023-11-28 20:03:47 26 4
gpt4 key购买 nike

看完this问题,我有这个 PySpark 代码:

model = KMeansModel(model.Cs[0])
first_split = split_vecs.map(lambda x: x[0])
model.computeCost(first_split)
model = KMeansModel(model.Cs[1])
second_split = split_vecs.map(lambda x: x[1])
model.computeCost(second_split)

我可以将它写成一行 for 循环吗?或者这些循环被限制在它们的主体中只有一行

注意:我不是在寻找纯代码的答案,我想学习,所以请解释。 :)


这是我悲惨的尝试:

model.computeCost(split) for i in range(2): # <- the semicolon here doesn't feel right..Where to put the other lines?

编辑:

是的,我知道我可以写一个普通的 ,但我想了解单行循环。这是为了实验。你看,看别人代码的时候,经常看到,看不顺眼……:/

最佳答案

您在该示例中所做的列表理解版本是:

[KMeansModel(model.Cs[i]).computeCost(split_vecs.map(lambda x: x[i])) for i in range(2)]

这与:

results = []
for i in range(2):
results.append(KMeansModel(model.Cs[i]).computeCost(split_vecs.map(lambda x: x[i])))

因此对于每个 i,它将那个链式表达式的返回值追加到列表中。对于这个例子,它碰巧起作用了,因为你的三行可以链接在一起。您在使用 KMeansModel(model.Cs[0]) 创建的对象上调用 computeCost() 方法,其参数是 split_vecs.map(lambda x: x[0]).

关于python - 理解 One Line For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com