为了账号安全,请及时绑定邮箱和手机立即绑定

如何在列表中选择一个随机位置,翻转位,然后浏览下一个项目

如何在列表中选择一个随机位置,翻转位,然后浏览下一个项目

牛魔王的故事 2021-09-11 19:30:18
有没有办法在列表中选择一个项目的位置,然后例如翻转位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)。


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信