这句话到底是做什么的?

时间:2014-02-05 02:19:01

标签: python random

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

    self.record = [random.choice([0.0, 1.0]) for _ in range(10)]

2 个答案:

答案 0 :(得分:10)

random.choice([0.0, 1.0])

random.choice方法将随机选择给定序列的元素。在这里,它会随机选择0.01.0

range(10)

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

[function() for _ in range(10)]

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

[random.choice([0.0, 1.0]) for _ in range(10)]

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

self.record = [random.choice([0.0, 1.0]) for _ in range(10)]

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

它等同于以下代码

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

答案 1 :(得分:1)

它意味着什么:

self.record  =                    [                        random.
#self.record shall be a name for: a list consisting of one random 
choice(                     [0.0, 1.0]) for _
#choice taken from the list [0.0, 1.0], for each value (which we don't care about)
in  range(                                  10)]
#in a range from 0 up to but not including 10.