从列表中删除换行符以创建单行 - Python

时间:2016-05-31 02:45:50

标签: python list shell replace terminal

我有这段代码,我想要它做的是用户输入类似:

1

2

3

4

5

然后把它变成:1,2,3,4,5

我的代码似乎没有这样做,它只返回列表中的第一个单词,任何帮助都会很棒。

i = raw_input("Put the list here: ")
print (i.replace("\r", ", "))

我更改了格式,它现在将从文本文件中提取输入,只要每行只用一个换行符分隔就可以正常工作

i = open("input.txt", "r")
o = open("output.txt", "w")


for line in i.readlines():
    o.write (line.replace("\n", ", "))

i.close()
o.close()

3 个答案:

答案 0 :(得分:1)

当用户在1 raw_input停止读取后按Enter键。

看看这个问题,看看如何阅读多行

Raw input across multiple lines in Python

答案 1 :(得分:1)

您可以编写一个简单的循环并使用某些指定的命令中断。例如

break_command = 'q'
values = []
while True:
    i = raw_input("Type a number (or q to exit): ")
    if (i==break_command): break
    values.append(i)

答案 2 :(得分:1)

如果您想要获取多个用户输入,请将所有输入放入列表中,然后打印出列表,请尝试以下操作:

listX = []                 #An empty list
for x in range(y):         #Where y in the number of times you want the user to enter the input
    listX.append(raw_input("Your message here: "))
print listX

如果要打印出没有方括号的列表成员,可以将列表转换为字符串:

listX = str(listX)

在此之后,由于方括号仅构成字符串的第一个和最后一个字符,请执行以下命令:

listX = listX[1:-1]

当然,可以同时实现前两个命令:

listX = str(listX)[1:-1]

但是,请注意 listX 的最终值是string类型。如果您在int中需要此值,则替换以下行:

listX.append(raw_input("Your message here: "))

使用:

listX.append(int(raw_input("Your message here: ")))

并且简单地打印出列表可能是更有效的,如果不是更好的选择。