我有这个清单:
row = [1,1,0]
我需要随后洗牌或随机化列表:
shuffle(row)
然后我需要通过找到任何相邻的1并移动它们,使它们至少相隔一个0.例如,我需要结果看起来像这样:
row = [0,0]
我不知道最有效的方法是搜索相邻的1并然后移动它们以使它们不相邻…我将反复这样做以提出这一行的多个组合.
最初当列表更短时我就是这样做的:
row = [1,0] rowlist = set(list(permutations(row))) rowschemes = [(0,0) + x for x in rowlist if '1,1' not in str(x)]
但是现在我的行是20个元素,这需要永远想出所有可能的排列.
解决方法
为什么不直接去找你想要的?就像是:
row = ["0","0","01","01"] random.shuffle(row) print (map(int,list("".join(row)[1:])))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。