首页 > 解决方案 > 无论我多么努力,Python代码都不会在新行中显示列表值

问题描述

我编写了一个运行良好的代码,没有错误,没有问题。但是无论我多么努力地尝试在新行中打印每个列表值,它仍然无法正常工作。我已经尝试过sep='\n',甚至尝试将列表放入循环中以逐个打印每个值。我仍然可以在一行中连续打印所有结果。这听起来太烦人了,我无法弄清楚为什么我的代码会出现这种奇怪的行为。这是我的代码:

length = int(input())
input_string = [int(y) for y in input().split()]

def lowest(string):

    return(min(x for x in string if x is not None))

def none_set(string):
    for k in range(length):
        if string[k] != None:
            if string[k] <=0:
                string[k] = None

def counter(string):
    nums = 0
    for h in range(length):
        if string[h] != None:
            nums += 1

    return nums

cnt = []

for i in range(length):   
    minimum = lowest(input_string)
    none_set(input_string) 
    
    cnt.append(counter(input_string))

    for j in range(length):
        if input_string[j] != None:
            input_string[j] -= minimum
        
result = list(set(cnt))[::-1]
print(result, sep='\n') #Doesn't print the values in new line :/

样本输入:

6
5 4 4 2 2 8

预期输出:

6
4
2
1

我得到的输出:

[6, 4, 2, 1]

如果您想知道我的代码到底是做什么的,请在此处查看此链接(无需登录/注册),但是,我想说,这个问题与我的代码的目标并不真正相关。

我提前感谢任何提示、解决方案或帮助。

标签: pythonpython-3.xlistloops

解决方案


这是因为您正在打印整个列表。

lst = ['a','b','c']

如果我打印此列表,我会得到['a','b','c']. 要打印每个项目,您可以使用 for 循环,如下所示:

lst = ['a','b','c']

for item in lst:
    print(item)

#output: 
a
b
c

推荐阅读