1

Python 用のプレイフェア暗号の作成に取り組んでおり、以下の表で文字の場所のインデックス作成に問題があります。

     [['A', 'B', 'C', 'D', 'E'],
     ['F', 'G', 'H', 'I', 'Y'],
     ['K', 'L', 'M', 'N', 'O'],
     ['P', 'Q', 'R', 'S', 'T'],
     ['U', 'V', 'W', 'X', 'Z']]

行と列の出力を与えるテーブル内の文字の位置をどのように見つけることができるのだろうかと思っていました。

オンラインでさまざまなソリューションを探しましたが、適切に機能させることができないようです。

4

6 に答える 6

3

私の見解:

>>> lst = [['A', 'B', 'C', 'D', 'E'],
...        ['F', 'G', 'H', 'I', 'Y'],
...        ['K', 'L', 'M', 'N', 'O'],
...        ['P', 'Q', 'R', 'S', 'T'],
...        ['U', 'V', 'W', 'X', 'Z']]
>>> get = "S"
>>> {x:y.index(get) for x,y in enumerate(lst) if get in y}
{3: 3}
>>> get = "V"
>>> {x:y.index(get) for x,y in enumerate(lst) if get in y}
{4: 1}
>>>
于 2013-10-29T01:03:10.213 に答える
0

別の方法は次のとおりです。

matrix=[['A', 'B', 'C', 'D', 'E'],
     ['F', 'G', 'H', 'I', 'Y'],
     ['K', 'L', 'M', 'N', 'O'],
     ['P', 'Q', 'R', 'S', 'T'],
     ['U', 'V', 'W', 'X', 'Z']]

def index(letter, matrix):
    for i,li in enumerate(matrix):
        try:
            j=li.index(letter)
            return i,j
        except ValueError:
            pass    

    raise ValueError("'{}' not in matrix".format(letter))

print index('H', matrix)     
# (1, 2) 
print index('a', matrix) 
# ValueError
于 2013-10-29T00:58:27.493 に答える