我想创建一个包含 15 个数字 1 值和 60 个数字 2 值的列表,然后我希望该列表以一种永远不会有超过一次出现值 1 的方式随机排列行(例如,它永远不会是 22212222122 11 2212
超级感谢任何帮助或指示!
这是我将如何做到的。
生成一组 15 个索引,使得没有一个索引是相邻的。
在您的最终列表中,如果该索引存在于集合中,则加 1,否则加 2。
这是我在代码中所说的:
import random
random_list = []
one_indices = set()
while len(one_indices) != 15:
idx = random.randint(0, 74)
if not {idx, idx+1, idx-1} & one_indices:
one_indices.add(idx)
for idx in range(75):
if idx in one_indices:
random_list.append(1)
else:
random_list.append(2)
print(random_list)
注意:
if not {index, index+1, index-1} & one_indices:
只是一种更高级的说法
if index not in one_indices and (index+1) not in one_indices and (index-1) not in one_indices:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句