将多个输入迭代连接成一个字符串

时间:2013-04-04 12:59:09

标签: python string concatenation

如果有人问过,请道歉,但我发现的类似问题并没有完全回答我的问题。

我知道如何获取单个输入并将其转换为字符串,或任何硬编码的内容。然而,我正在尝试做的是接受多个输入并将它们转换为单个字符串。

示例:

Enter a letter: h
Enter a letter: e
Enter a letter: l
Enter a letter: l
Enter a letter: o

......依此类推,无论多长时间,用户输入's'都需要很长时间。

Enter a letter: s

然后程序将所有先前的迭代打印为单个字符串。

Result: hello

如何将来自单独的,可能无限输入的字符串拼凑在一起?

5 个答案:

答案 0 :(得分:1)

我意识到这篇文章很老,但是,这就是我在Python 3中编写解决方案的方式

mylist = []
results = ""
while True:
    c = input("Enter a letter:")
    if c == "s":
        result = "\n".join(mylist)
        print('Items entered: \n'+ result)
        break
    mylist.append(c)

答案 1 :(得分:0)

  

如何将来自单独的,可能无限输入的字符串拼凑在一起?

您可以使用

执行此操作
''.join(inputs)

其中inputs是任意iterable个字符串。

答案 2 :(得分:0)

假设您的输入产生一个列表(或任何其他可迭代的)字符(或字符串),就像您所获得的那样,例如:

mylist = []
while True:
   c = raw_input("Enter a letter:")
   if c == "s":
       break
   mylist.append(c)

然后你可以简单地join()

result = "".join(mylist) 

答案 3 :(得分:0)

''.join(iter(lambda: raw_input('Enter a letter: '), 's'))

答案 4 :(得分:0)

my_list = []

while len(my_list) == 0 or my_list[-1] != 's':
    my_list.append(raw_input("Enter a letter: "))

print ''.join(my_list[:-1])