无论我多么努力,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中的任何其他数据结构器一样,是一个定义良好的对象,所以这并不能回答这个问题。一旦你有足够的钱,你将能够;相反-