这句话到底是做什么的?

use*_*335 2 python random

我是python的新手.在网上找到一个我想了解的代码.有人可以帮我理解下面的陈述实际上是做什么的吗?

    self.record = [random.choice([0.0, 1.0]) for _ in range(10)]
Run Code Online (Sandbox Code Playgroud)

Set*_*ton 10

random.choice([0.0, 1.0])
Run Code Online (Sandbox Code Playgroud)

random.choice方法将随机选择给定序列的元素.在这里,它将随机选择0.0,或1.0.

range(10)
Run Code Online (Sandbox Code Playgroud)

这个函数将创建一个10元素列表(或者在python3上可迭代)

[function() for _ in range(10)]
Run Code Online (Sandbox Code Playgroud)

这是一个列表推导,它将函数调用10次,并将结果放在列表中.这_是一个python约定,意思是"我需要一个变量,但我不会使用它的值"

[random.choice([0.0, 1.0]) for _ in range(10)]
Run Code Online (Sandbox Code Playgroud)

这会创建一个长10个元素的列表,其中每个元素都是0.01.0随机选择的.

self.record = [random.choice([0.0, 1.0]) for _ in range(10)]
Run Code Online (Sandbox Code Playgroud)

这会将10个元素列表放入record当前类中的实例变量中.

它等同于以下代码

self.record = []
for _ in range(10):
    num = random.choice([0.0, 1.0])
    self.record.append(num)
Run Code Online (Sandbox Code Playgroud)