2017-02-08 5 views
0
import textwrap 

def get_coord(x,matrix): 

    code = 'ADFGVX' 
    for i in range(len(matrix)): 
     for a in range(len(matrix[i])): 
      if matrix[i][a] == x: 
       return code[i] + code[a] 
    return -1, -1 

def encode(message, secret_alphabet, keyword): 

    message = ''.join(message.split()).lower() 
    matrix = [secret_alphabet[i * 6:(i+1) * 6] for i in range(6)] 
    first = '' 
    lk = len(keyword) 
    for i in message: 
     first += get_coord(i, matrix) 
    first = textwrap.wrap(first, lk)  

encode("I am going", 
     "dhxmu4p3j6aoibzv9w1n70qkfslyc8tr5e2g", 
     "cipher") 

私は列を作成するために一緒にジップする必要がある文字列のリストを持っています。私はこのリストを作成するtextwrapを使用:文字列のリストを列に分割する

最初texwrapping後に私が手:

['FADVAG', 'XXDXFA', 'GDXX'] 

私が見えるように私の出力を必要とする:私はこれを実現するにはどうすればよい

['FXG', 'AXD', 'DDX', 'VXX', 'AF', 'GX'] 

itertools.zip_longeststr.join

+0

コードの一部と最初の配列の取得方法を含める必要があります。 – jonmrich

+0

'' DDD ''は' 'DDX' 'でなければなりません。 – MYGz

答えて

1

一つのアプローチ:

>>> from itertools import zip_longest 
>>> [''.join(item) for item in zip_longest('FADVAG', 'XXDXFA', 'GDXX', fillvalue='')] 
['FXG', 'AXD', 'DDX', 'VXX', 'AF', 'GA'] 

しかし、これはあなたの望んでいた第3の最後の項目を生成しません。それは元の投稿の間違いでしたか?

+1

なぜ' 'GA' 'が必要なリストで消えるのか分かりません:)。そして、不思議なことに、どこからでも「AX」が現れます。 – MYGz

+0

私の悪いタイピングについて申し訳ありません私は数時間それをしていたhaha私はこの写真を与えるでしょうありがとう –

+0

私はzip_longestにリストを渡すことができる方法はありますか? –

関連する問題