Python 检查列表中的元素

Python 检查列表中的元素,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我需要做的是检查我的列表(a) 随机更改[item]中的一个元素(0更改为1或1更改为0)仅更改一个元素,如何执行此操作 在我的问题中,如果所有要素都发生了变化,则应: for item in a: for elements in range(len(a[item])): if "0" in a or "1" in a: a = ["111111110000000001010101","000000001111000000111100"] 如果仅更改了一个元素,则应:

我需要做的是检查我的
列表(a)

随机更改[item]中的一个元素(0更改为1或1更改为0)仅更改一个元素,如何执行此操作

在我的问题中,如果所有要素都发生了变化,则应:

for item in a:
    for elements in range(len(a[item])):
       if "0" in a or "1" in a:
a = ["111111110000000001010101","000000001111000000111100"]
如果仅更改了一个元素,则应:

for item in a:
    for elements in range(len(a[item])):
       if "0" in a or "1" in a:
a = ["111111110000000001010101","000000001111000000111100"]

只需随机选择0或1即可更改为1或0。下面的源代码对我很有用:

a =["000000001111101110101010","111111110000111111001011"]
输出为:

a = ['000000001111111110101010',"111111110000111111000011"]
print(a)

ret = []
for item in a:
    r = ''
    for i in item:
        b = int(i, base=2)
        c = str(int(not b))
        r = r + c

    ret.append(r)

print(ret)

以下是翻转所有数字和翻转一个随机数字:

['000000001111111110101010', '111111110000111111000011']
['111111110000000001010101', '000000001111000000111100']
输出:

import random

def flip_all(s):
    s = list(s)
    return ''.join([str(1 - int(c)) for c in s])

def flip_one(s):
    s = list(s)
    rand_i = random.randint(0, len(s)-1)
    s[rand_i] = str(1 - int(s[rand_i]))
    return ''.join(s)

a = ["000000001111111110101010","111111110000111111000011"]
print("a:        ", a)
print("flip all: ", [flip_all(word) for word in a])
print("flip one: ", [flip_one(word) for word in a])

关于IFF,只有一个元素的变化应该是:A=(“00000000 11111 01110101010”,“11111111 0000111111001011”)只是随机挑选0或1改为1或0,如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做:)