【问题标题】:remove line breaks from list to create a single line - Python从列表中删除换行符以创建单行 - Python
【发布时间】:2016-09-28 21:32:04
【问题描述】:

我有这段代码,我想要它做的是接受用户输入,例如:

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()

【问题讨论】:

  • 我没有看到您的代码与您所要求的内容之间的联系......您要求用户输入,最后您在控制台中打印一次输入?你提到的名单在哪里?
  • 这听起来像XY problem。请edit你的问题,并清楚地描述你到底想要做什么,以及你到底卡在哪里。以下所有答案都只是基于他们认为您的问题是什么的猜测,而实际上没有人知道。
  • 那么您是否尝试用逗号分隔的值字符串替换多行字符串输入?这里根本没有清单……

标签: python list shell replace terminal


【解决方案1】:

当用户在 1 raw_input 停止读取后按下回车。

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

Raw input across multiple lines in Python

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 如果我从文本文件中提取用户输入会怎样?这似乎会更容易
    【解决方案3】:

    如果您想获取多个用户输入,请将所有输入放入一个列表中,然后打印出该列表,试试这个:

    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 的最终值是字符串类型。如果您需要 int 中的此值,请替换以下行:

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

    与:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多