【问题标题】:Python one-liner into normal for loopPython one-liner 变成了正常的 for 循环
【发布时间】:2019-04-10 01:46:00
【问题描述】:

我试图理解以下单行: weights = [0.0 for i in range(len(training_data[0]))]

我想了解实际上说的是什么。我想它说 在training_data[0] 的长度范围内为每个i 追加一个[0.0] 到weights 列表

我需要将该单行代码转换为普通的 for 循环。以下不会产生相同的结果,因为我稍后编辑的程序抱怨一个 numpy 问题:

weights = []
num_rows = training_data[0]
for index in range(len(num_rows)):
    weights.append([0.0])

感谢任何关于如何将单行转换为正常查找循环的建议。

【问题讨论】:

  • 关闭。 weights.append(0.0),不是weights.append([0.0])
  • numpy 显示什么错误?
  • 您在问题中编辑并修复了自己的代码。永远不要这样做,因为这个问题现在对未来的用户没有价值。
  • 向我们展示回溯。您没有提供有关错误的信息。

标签: python python-3.x for-loop


【解决方案1】:

这是一个列表推导式,基本上你可以这样转换:

weights = [0.0 for i in range(len(training_data[0]))]

进入:

weights = []
total_iterations = len(training_data[0])
for i in range(total_iterations): # equivalent to for i==0, i<total_iterations, i++ in other languages
    weights.append(0.0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2016-01-14
    相关资源
    最近更新 更多