首页 文章

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

提问于
浏览
1

有没有办法在列表中选择项目的位置,然后翻转该位

pop = ['1010101', '1000101','1001001','1010101,'110001']

然后在列表中的每组项目中随机选择一个位置,并将该位翻转为0到1或1到0

例如,它将遍历列表中的每个项目并在每个项目中选择随机位置,1010101将变为1000101,第二个项目将变为1000101,1011001等 .

1 回答

  • 2

    你可以使用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)
    

    Output

    ['1010111', '0000101', '0001001', '1010111', '111001']
    

    一切都在 flip 功能内完成,分三个主要步骤 .

    选择随机位置: pos = random.choice(range(len(s))) .

    改变位置的位 .

    r = list(s)
    r[pos] = '1' if r[pos] == '0' else '0'
    

    最后通过joining返回一个新字符串 rreturn ''.join(r) 的元素 .

    Further

相关问题