Python:如何将多行输入的数据放入列表中

4

我知道这可能是非常简单的事情,但我似乎被卡住了。 无论如何,为了完成一个任务,用户必须输入数据点(N)的数量,然后输入数据点本身。它们必须以与输入方式相同的方式打印出来(每个数据点/行),然后放入单个列表中以供以后使用。以下是我目前所拥有的:

N = int(input("Enter number of data points: "))
lines = ''
for i in range(N):
   lines += input()+"\n"
print(lines)

n = 4 的输出结果(用户输入1(回车)2(回车)...4,以下内容将被打印出来):

1
2
3
4

这段代码运行得很完美,但是我现在需要将这些值转换成一个列表,以便在程序的后面进行一些统计工作。我尝试过创建一个空列表并将每一行添加到其中,但是/n格式好像会导致问题。或者我会收到“列表索引超出范围”的错误提示。 非常感谢任何帮助!


小建议 - 当您在案例中不真正使用变量 - _i_,仅用于迭代次数时 - 您可以将其替换为下划线 *for _ in range(N)*。这通常有助于避免IDE对您的抱怨 :-) - volcano
3个回答

3
如何将每个新输入直接添加到列表中,然后只需打印它。就像这样:
N = int(input("Enter number of data points: "))
lines = []
for i in range(N):
    new_data = input("Next?")
    lines.append(new_data)

for i in lines:
    print(i)

现在每个项目都打印在新行上,您有一个列表进行操作。

哇,你们真快!这正是我所需要的。我之前尝试过将行改为[],但没有在for循环中保留lines.append(呃)。谢谢! - Prunecandy
很高兴我们能帮到您。您可以随时将勾选标记放在帮助您的答案上,以便发布者获得信用。 :) - George Bou

0
你可以将所有的输入添加到列表中,然后使用join函数,就像这样:

'\n'.join(inputs)

当你想要打印它时,使用这种方式可以给你一个字符串,其中列表的每个成员都用你选择的分隔符分隔,本例中为换行符。

这样,你就不需要添加任何东西到从用户那里得到的值中。


3
请勿覆盖Python函数 - 不要调用变量_list_。 - volcano

0
你可以先将所有的数据追加到一个列表中,然后使用for循环逐行打印每个项目,这样就不需要使用"\n"来拼接了。
N = int(input("Enter number of data points: "))    
data = []
for i in range(N):
    item = data.append(input())

for i in data:    
    print(i)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接