Python 基于截断创建布尔值列表

Python 基于截断创建布尔值列表,python,python-3.x,list,random,Python,Python 3.x,List,Random,我正在尝试生成一个包含我可以控制的变量的列表。假设我想生成一个长度为100的列表,条件如下: [如果x>0.8,则为真;如果x在[随机数在0和1之间]中为假] 因此,该列表将具有2:8的真/假值,依此类推。我尝试了类似的方法,但语法不正确: my_list = [] True if x > 0.8 else False for x in random() my_list.append(i) 感谢您的帮助 我刚刚为您制作了一个简短的模块: import random

我正在尝试生成一个包含我可以控制的变量的列表。假设我想生成一个长度为100的列表,条件如下:

[如果x>0.8,则为真;如果x在[随机数在0和1之间]中为假]

因此,该列表将具有2:8的真/假值,依此类推。我尝试了类似的方法,但语法不正确:

    my_list = []
    True if x > 0.8 else False for x in random()
    my_list.append(i)

感谢您的帮助

我刚刚为您制作了一个简短的模块:

import random

def main():
    my_list = []
    for _ in range(100):
        # Ternary statement like your example
        x = True if random.random() > 0.8 else False
        my_list.append(x)

    print(my_list)

if __name__ == "__main__":
    # Run main functionality
    main()

这将继续进行,并实现您在100次迭代中尝试做的事情。继续并更改进一步迭代的次数:

使用random.choices

range100将返回一个包含100个元素的序列,您可以对其进行循环。对于每个条件,调用rand并将条件结果返回到列表中

my_list = [random() > 0.8 for _ in range(100)]

如果。。。else False,因为比较的结果是True或False。

看看函数以及如何用Python编写函数。这是否回答了您的问题?
my_list = [random() > 0.8 for _ in range(100)]