Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无论我多么努力,Python代码都不会在新行中显示每个列表值_Python_Python 3.x_List_Loops - Fatal编程技术网

无论我多么努力,Python代码都不会在新行中显示每个列表值

无论我多么努力,Python代码都不会在新行中显示每个列表值,python,python-3.x,list,loops,Python,Python 3.x,List,Loops,我已经写了一段代码,它运行得很好,没有错误,没有问题。但无论我多么努力地在新行中打印每个列表值,它仍然不起作用。我尝试了sep='\n',甚至尝试将列表放入循环中,逐个打印每个值。我仍然将结果打印在一行中。这听起来太烦人了,我不明白为什么我的代码会有这种奇怪的行为。这是我的密码: length = int(input()) input_string = [int(y) for y in input().split()] def lowest(string): return(min(x

我已经写了一段代码,它运行得很好,没有错误,没有问题。但无论我多么努力地在新行中打印每个列表值,它仍然不起作用。我尝试了
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]
我得到的输出:

6
5 4 4 2 2 8
6
4
2
1
[6, 4, 2, 1]
如果你想知道我的代码到底是做什么的,请检查这个链接(不需要登录/注册),然而,我想说,这个问题实际上与我的代码的目标无关


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

请尝试这样打印:

for i in result:
    print(i)

因为你正在打印整个列表

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

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

for item in lst:
    print(item)

#output: 
a
b
c
试试这个

 for i in result:
     print(i)
使用
join()
而不是多次调用
print()
。有些人认为读起来比较困难,但即使对于小的列表,它也更有效,对于大于100个元素的列表,数量级更快。

print(“\n”.join(映射(str,结果)))

对于结果中的x:打印(x)
应该有效。这是否回答了您的问题?是的,但是为什么
sep='\n'
起作用呢?我以为你说它不起作用。哎呀,我的错,是的,我是说
sep='\n'
为什么不起作用。明白了。嗯@Eitan Rosati向你解释了我明白了:)。祝您有个美好的一天!谢谢:)现在它可以工作了。但是我仍然不明白为什么
sep='\n'
不起作用。难道不应该在这样的情况下使用吗?因为当你打印一个列表时,他会把列表当作一个对象。谢谢:))列表有一个默认函数,可以将其显示为字符串。因为list和python中的任何其他数据结构器一样,是一个定义良好的对象,所以这并不能回答这个问题。一旦你有足够的钱,你将能够;相反-