有没有办法在列表中选择一个项目的位置,然后例如翻转位pop = ['1010101', '1000101','1001001','1010101,'110001']然后在列表中的每组项目中随机选择一个位置并将该位翻转为 0 到 1 或 1 到 0因此,例如,它将遍历列表中的每个项目并在每个项目中选择随机位置,1010101 将变成 1000101,第二个项目将变成 1000101、1011001 等。
1 回答

慕慕森
TA贡献1856条经验 获得超17个赞
您可以使用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'
最后由返回一个新字符串连接的元素r,return ''.join(r)。
添加回答
举报
0/150
提交
取消