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)
1 回答
你可以使用random.choice:
Output
一切都在
flip
功能内完成,分三个主要步骤 .选择随机位置:
pos = random.choice(range(len(s)))
.改变位置的位 .
最后通过joining返回一个新字符串
r
,return ''.join(r)
的元素 .Further
Change one character in a string?
Does Python have a ternary conditional operator?