有没有办法选择列表中项目的位置,然后翻转位,例如
pop = ['1010101', '1000101','1001001','1010101,'110001']
然后在列表中的每组项目中随机选择一个位置,并将该位翻转为 0 到 1 或 1 到 0
例如,它将遍历列表中的每个项目并在每个项目中选择随机位置,1010101 将变成 1000101,第二个项目将变成 1000101、1011001 等。
最佳答案
您可以使用random.choice :
import random
random.seed(42)
def flip(s):
pos = random.choice(range(len(s)))
r = list(s)
r[pos] = '1' if r[pos] == '0' else '0'
return ''.join(r)
pop = ['1010101', '1000101', '1001001', '1010101', '110001']
result = [flip(s) for s in pop]
print(result)
输出
['1010111', '0000101', '0001001', '1010111', '111001']
一切都在 flip
函数内通过 3 个主要步骤完成。
选择随机位置:pos = random.choice(range(len(s)))
。
更改位置的位。
r = list(s)
r[pos] = '1' if r[pos] == '0' else '0'
最后通过 joining 返回一个新字符串r
的元素,返回 ''.join(r)
。
进一步
关于python - 如何在列表中选择随机位置,翻转位,然后浏览下一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697775/