Python:获取二进制排列,但控制循环流
Python: Getting binary permutations, but controlling loop flow
首先,我读了这个:all permutations of a binary sequence x bits long
这与我想要的类似,但我不想提前生成所有排列。我想要的更多是一个发电机,我可以随时通过并停止(出于效率原因,我有我想停止的截止条件)。
我想知道是否有一种优雅的方法可以做到这一点 Python。上述问题的答案都涉及“.join”,但我认为这在这里行不通。我假设我需要使用 itertools。
有什么想法吗?
由于您喜欢 link 答案中的解决方案,这里是生成器版本:
for pattern in ("".join(seq) for seq in itertools.product("01", repeat=3)):
...
使用括号而不是方括号 [ ... ]
为您提供了一个根据需要创建值的生成器。
几乎可以很容易地将任何函数变成生成器;详情请参阅 the python tutorial。
首先,我读了这个:all permutations of a binary sequence x bits long
这与我想要的类似,但我不想提前生成所有排列。我想要的更多是一个发电机,我可以随时通过并停止(出于效率原因,我有我想停止的截止条件)。
我想知道是否有一种优雅的方法可以做到这一点 Python。上述问题的答案都涉及“.join”,但我认为这在这里行不通。我假设我需要使用 itertools。
有什么想法吗?
由于您喜欢 link 答案中的解决方案,这里是生成器版本:
for pattern in ("".join(seq) for seq in itertools.product("01", repeat=3)):
...
使用括号而不是方括号 [ ... ]
为您提供了一个根据需要创建值的生成器。
几乎可以很容易地将任何函数变成生成器;详情请参阅 the python tutorial。