我正在尝试生成一个包含我可以控制的变量的列表。假设我要生成一个条件为100的列表:
[True if x > 0.8 else False for x in [random_number_between_0_and_1]]
因此列表将具有2:8的True / False值,依此类推。我尝试过类似的操作,但是语法已关闭:
my_list = []
True if x > 0.8 else False for x in random()
my_list.append(i)
感谢您的帮助!
答案 0 :(得分:2)
使用random.choices
。
my_list = random.choices([True, False], weights=[2, 8], k=100)
答案 1 :(得分:1)
我刚刚为您制作了这个简短的模块:
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次迭代所做的尝试。继续并更改数量以进行进一步的迭代:)
答案 2 :(得分:1)
range(100)
将返回100个元素的序列,您可以对其进行循环。对于每一个,调用rand()
并将条件结果返回到列表推导中。
my_list = [random() > 0.8 for _ in range(100)]
由于比较的结果是True if ... else False
或True
,因此无需使用False
。