【问题标题】:Print list in new line for each list in list in Python为Python中列表中的每个列表在新行中打印列表
【发布时间】:2019-08-07 14:51:12
【问题描述】:

我在列表中有一个看起来像这样的列表

[['a', 9] , ['b', 1] , ['c', 4] , . . ., ['z', 2]]

从这里开始,我想将列表中的每个列表逐行打印出来,看起来像这样

['a',9]
['b',1]
. 
. 
['z',2]

我知道我可以像这样使用循环打印出来:

for i in list:
   print(i)

但我的问题是,可以不使用循环来完成吗?就像只打印一行而不与循环交互一样。 (我打算使用一些警报功能,所以我希望它出现在包含所有列表的一条大消息中,而不是多条消息,每个消息都有一个列表)

我试过这个:

print(list, sep='\n')

但它不会在每个列表中分成一行。我也试过这个:

print('\n'.join(list))

并且发生了这个错误:

TypeError: sequence item 0: expected str instance, list found

这似乎不适用于列表中的列表。有什么想法吗?

【问题讨论】:

  • 对于上一个错误,请尝试print('\n'.join(map(str, list)))
  • 您可以将此作为答案发布
  • 当你说你想在某种警报功能中打印这个是什么意思?你会重定向 print 使用的输出流吗,或者你打算怎么做?
  • 我创建了一个函数,它像 print() 一样工作,但不是将它打印到终端,而是将这个函数内的值发送到聊天。我在这里避免循环,因为我希望它只是一条大消息而不是多条消息@tobias_k
  • 好的,但是你将如何将print 的知识转移到你的函数中呢?例如。你的函数是否也支持print(*lines) 语法?不过,'\n'.join 应该可以工作。根据您的聊天方式,您也可以尝试print(..., file=your_chat_stream)

标签: python list


【解决方案1】:
lst = [['a', 9] , ['b', 1] , ['c', 4]]

print(*lst, sep='\n')

打印:

['a', 9]
['b', 1]
['c', 4]

【讨论】:

    【解决方案2】:

    你快到了,只需添加一些列表理解:

    my_list = [['a', 9] , ['b', 1] , ['c', 4] , . . ., ['z', 2]]
    print('\n'.join(str(el) for el in my_list ))
    

    【讨论】:

    • 这个很适合我的聊天功能,但是列表中的元素太多它会在最后一行显示..
    猜你喜欢
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2022-07-07
    • 1970-01-01
    • 2023-01-23
    • 2022-12-18
    相关资源
    最近更新 更多