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

您需要展平结果中的嵌套列表,然后将其转换为字符串。这是一种方法:

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