1

次のコードで、メッセージを暗号化しようとしています。問題は、結果が文字列ではなくリスト形式で表示されることです。文字列にする方法を教えてください。

4

2 に答える 2

2

finalArray明らかにリストです:

finalArray = []

文字列に変換するには、次を使用しますjoin

print ''.join(finalArray)

しかし、最初に、おそらくこれらのネストされたリストは必要ありません。extendではなく、を使用する必要がありますappend

def stringEncrypter(A):
    length = len(A)
    finalArray = []

    if length%2 == 0:
            firstArray=[]*(length/2)
            secondArray=[]*(length/2)
    else:
            firstArray=[]*((length+1)/2)
            secondArray=[]*((length-1)/2)

    for x in range(0, length-1):
            if x%2 == 0:
                    firstArray.append(A[x:x+1])
                    secondArray.append(A[x+1:x+2])
    finalArray.extend(firstArray)
    finalArray.extend(secondArray)

    print ''.join(finalArray)
于 2013-03-12T15:38:17.477 に答える
2

結果のネストされたリストをフラット化し、それを文字列に変換する必要があります。これを行う1つの方法は次のとおりです。

>>> import itertools
>>> result = [['I', 'R', 'A', ' ', 'O'], [' ', 'E', 'D', 'Y', 'U']]
>>> ''.join(itertools.chain(*result))
'IRA O EDYU'
于 2013-03-12T15:47:22.530 に答える