2015-10-09 6 views
0
a = ["000000001111111110101010","111111110000111111000011"] 

, что мне нужно сделать, это проверить мой list(a),Проверьте элементы списков

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

случайное изменение одного элемента в a[item] (0 изменение к 1 или 1 изменение к 0) только один элемент, как я могу это сделать

в моем вопросе, если все элементы должны быть изменены:

a = ["111111110000000001010101","000000001111000000111100"] 

если только один эль ements изменилось должно быть:

a =["000000001111101110101010","111111110000111111001011"] 

просто случайный выбрать 0 или 1, чтобы изменить 1 или 0

ответ

0

Исходный код ниже работает для меня:

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'] 
+0

как о МФЛ только один элементы изменены должны быть: а = [ "000000001111101110101010", "111111110000111111001011"] просто случайным образом выбрать 0 или 1, чтобы изменить значение 1 или 0 – LOLskingsM

0

Вот как, переворачивая все цифры и переворачивая одну случайную цифру:

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]) 

Выход:

a:   ['000000001111111110101010', '111111110000111111000011'] 
flip all: ['111111110000000001010101', '000000001111000000111100'] 
flip one: ['000000001101111110101010', '111111110000111110000011'] 
+0

ох thats прохладный !!!! – LOLskingsM

+0

Если этот или любой ответ разрешил ваш вопрос, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/a/5235/252544), нажав галочку. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. Это не обязано делать это :) –