pls*_*elp -2 python random python-2.7
我想创建一个随机的元组列表,其中每个元组的长度相同(例如6个),并由随机选择 values = [0, 15, 30, 45, 60].
一个示例解决方案是[(0, 30, 60, 0 , 15, 0)...(15, 45, 45, 0, 30, 60)].但是,我不想接受(0, 0, 0, 0, 0, 0)这个解决方案.
只需在事后过滤:
def random_nonzero_tuple(length=6, values=(0, 15, 30, 45, 60)):
while True:
tup = tuple(random.choice(values) for _ in range(length))
if any(tup):
return tup
Run Code Online (Sandbox Code Playgroud)
any(tup)False如果所有值tup都为false 则返回; 0是假的.这保证了函数永远不会返回`(0,0,0,0,0,0).
在列表理解中使用它:
random_tuples = [random_nonzero_tuple() for _ in range(desired_length)]
Run Code Online (Sandbox Code Playgroud)