不明白这个python For循环

Mik*_*ike 14 python

我仍然是一个python newb,但我正在通过Pyneurgen神经网络教程,我不完全理解用于创建输入数据的for循环如何在这个实例中工作:

for position, target in population_gen(population):
    pos = float(position)
    all_inputs.append([random.random(), pos * factor])
    all_targets.append([target])`
Run Code Online (Sandbox Code Playgroud)

什么是循环迭代?我以前没有遇到过使用逗号和循环中的函数.

在此先感谢任何帮助:)

Eri*_*erg 14

函数population_gen返回一个元组列表,这些元组使用这种语法自动解压缩为变量名.

所以基本上,你从函数中得到类似下面的东西作为返回值:

[("pos1", "target1"), ("pos2", "target2"), ]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,在for循环的第一次迭代中,变量"position"和"target"将具有以下值:

position = "pos1"
target = "target1"
Run Code Online (Sandbox Code Playgroud)

在第二次迭代中:

position = "pos2"
target = "target2"
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 6

元组拆包。

for a, b in [(1, 2), (3, 4)]:
  print a
  print b
  print 'next!'
Run Code Online (Sandbox Code Playgroud)

而函数只是一个函数。