2014-10-31 1 views
0

Я пытаюсь сделать шифр playfair, но у меня возникают проблемы с получением переменных в нужном месте.append к вложенному списку в python

У меня есть функция, которая кодирует 2 буквы обычного текста за раз и возвращает закодированный эквивалент, но принимает только 2 аргумента одной буквы (в строке). Мне нужна помощь в разделении моего списка, а затем на кодирование пары.

Это то, что у меня есть

def function(plaintext): 
    temp_hold = '' 
    encode_out = '' 

    sendout = '' 

    #breaks into pairs of 2 (list within a list) 
    temp_hold = [plaintext[i:i+2] for i in range(0, len(plaintext), 2)] 

    for i in range(len(temp_hold)): 
     for j in range(len(temp_hold)): 
      encode_out = encode_pair(temp_hold[i][j], temp_hold[i][j]) 
    print encode_out 
    # encode pair takes (a,b) and returns its encoded value 

print function("abcd") # should print HSCI 
+0

возможно дубликат [добавления к вложенному списку в Python] (http://stackoverflow.com/questions/13763157/appending-to-a-nested-list-in -python) – lurker

ответ

0

Если у вас действительно есть вложенный цикл? Разве это не должно быть ...

for letter1, letter2 in temp_hold: 
    encode_out = encode_pair(letter1, letter2) 
    print encode_out 
+0

Спасибо, что работал, но как это будет работать, если бы у меня было предложение, а не abcd? – xPlasmos

+0

Зависит от того, что вы подразумеваете под предложением. Следует ли игнорировать пробелы и знаки препинания? – jcfollower

+0

Да без пробелов и знаков препинания – xPlasmos