带新行的Python打印数组

6qfn3psc  于 2022-12-17  发布在  Python
关注(0)|答案(5)|浏览(170)

我刚接触python,有一个简单的数组:

op = ['Hello', 'Good Morning', 'Good Evening', 'Good Night', 'Bye']

当我使用pprint时,我得到以下输出:

['Hello', 'Good Morning', 'Good Evening', 'Good Night', 'Bye']

有没有办法去掉引号、逗号和括号,然后打印在单独的一行中,这样输出结果就像这样:

Hello
Good Morning
Good Evening
Good Night
Bye
idfiyjo8

idfiyjo81#

你可以用一个新行来join字符串,并打印结果字符串:

print "\n".join(op)
7gs2gvoe

7gs2gvoe2#

对于Python 3,我们还可以使用列表解包
https://docs.python.org/3.7/tutorial/controlflow.html#unpacking-argument-lists

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

这和

print('Hello', 'Good Morning', 'Good Evening', 'Good Night', 'Bye', sep='\n')
velaa5lx

velaa5lx3#

这里有几点需要澄清
1.首先你有一个list,而不是一个数组.不同的是列表是一个更动态和灵活的数据结构(在动态语言比如python中是list).例如你可以有多个不同类型的对象(例如有2个string,3个int,一个socket,等等)
1.列表中单词两边的引号表示它们是string类型的对象。
1.当你使用print op(或者python 3+中的print(op))时,你实际上是在请求python显示一个特定列表对象及其内容的可打印表示,因此需要引号、逗号、括号等。
1.在python中,你有一个非常简单的for each循环,可以用来迭代可迭代对象的内容,比如list,只要这样做:

for greeting in op: 
     print greeting
368yc8dk

368yc8dk4#

逐行打印

for word in op:
    print word

这样做的好处是,如果op恰好很长,那么您不必纯粹为了打印而创建新的临时字符串。

mu0hgdu0

mu0hgdu05#

您还可以通过使用Pretty Printpprint获得更好的打印行为
当你超过某个阈值时,漂亮打印会自动换行,所以如果你只有几个短项目,它会内联显示:

from pprint import pprint
xs = ['Hello', 'Morning', 'Evening']
pprint(xs)
# ['Hello', 'Morning', 'Evening']

但如果你有很多内容,它会自动换行:

from pprint import pprint
xs = ['Hello', 'Good Morning', 'Good Evening', 'Good Night', 'Bye', 'Aloha', 'So Long']
pprint(xs)
# ['Hello',
#  'Good Morning',
#  'Good Evening',
#  'Good Night',
#  'Bye',
#  'Aloha',
#  'So Long']

也可以使用width=参数指定列宽。

另请参阅How to print a list in Python "nicely"

相关问题