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,如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做:)