【问题标题】:How do i make this list into a string in python? [duplicate]如何在 python 中将此列表转换为字符串? [复制]
【发布时间】:2013-02-28 05:14:54
【问题描述】:

我正在尝试在以下代码中加密消息。问题是我的结果以列表格式而不是字符串出现。如何把它变成一个字符串?

【问题讨论】:

  • 据我所知,您正在尝试创建一个交替字符的字符串。你想要这个:def stringEncrypter(A): return "".join(A[0:-1:2] + A[1:-1:2])

标签: python string list


【解决方案1】:

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

>>> import itertools
>>> result = [['I', 'R', 'A', ' ', 'O'], [' ', 'E', 'D', 'Y', 'U']]
>>> ''.join(itertools.chain(*result))
'IRA O EDYU'

【讨论】:

  • 或者您可以将列表传递给itertools.chain.from_iterable
【解决方案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)

【讨论】:

  • 但是,当finalArray 是列表列表时,这将不起作用,因为它在问题中。
  • 是的,我把append改成了extend,忘了说。
  • 是的,这行得通。扩展是我需要的。没有它加入就行不通。谢谢
猜你喜欢
  • 2019-10-21
  • 2023-01-04
  • 2011-02-08
  • 2011-11-23
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2021-05-01
  • 2020-10-09
相关资源
最近更新 更多