Python 基于截断创建布尔值列表
我正在尝试生成一个包含我可以控制的变量的列表。假设我想生成一个长度为100的列表,条件如下: [如果x>0.8,则为真;如果x在[随机数在0和1之间]中为假] 因此,该列表将具有2:8的真/假值,依此类推。我尝试了类似的方法,但语法不正确: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
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)]