Python:同时打印列表中的所有字符串

问题描述 投票:1回答:5

例如,我有一个列表a。当我在for循环中执行它时,我可以打印它的所有元素。但是当我在for循环之外执行它时,它只打印最后一个。如何在for循环外打印它们?提前致谢。

码:

a=['a is apple','b is banana','c is cherry']
for i in a:
    print(i)
print("====================")
print(i)

它打印:

a is apple
b is banana
c is cherry
====================
c is cherry

我想要的结果是:

a is apple
b is banana
c is cherry
====================
a is apple
b is banana
c is cherry
python python-3.x for-loop
5个回答
4
投票

你可以使用print*以及换行符的分隔符:

print(*a, sep='\n')
print("====================")
print(*a, sep='\n')

输出:

a is apple
b is banana
c is cherry
====================
a is apple
b is banana
c is cherry

print(*a)相当于print(a[0], a[1], a[2], ...)。这将打印它之间的空白区域。使用sep='\n'覆盖此默认值会为您提供换行符。

如果要重用它,请编写自己的小辅助函数:

def myprint(a):
    print(*a, sep='\n')

myprint(a)

单行替代方案,但可读性较差:

print(*(a + ["=" * 20] + a), sep='\n')

输出:

a is apple
b is banana
c is cherry
====================
a is apple
b is banana
c is cherry

在Python 2中,“打开”Python-3风格的打印功能:

from __future__ import print_function

1
投票

您可以将列表乘以2并在列表中间附加分隔符,然后使用join方法打印列表。

l = ['a is apple','b is banana','c is cherry']
l = l*2 
#['a is apple', 'b is banana', 'c is cherry', 'a is apple', 'b is banana', 'c is cherry']
l = l.insert(int(len(l)/2), '====================')
#['a is apple', 'b is banana', 'c is cherry', '====================','a is apple', 'b is banana', 'c is cherry']
print('\n'.join(l))

这将输出:

a is apple
b is banana
c is cherry
====================
a is apple 
b is banana
c is cherry

1
投票

您可以使用join()并将列表传递给它,如下所示:

a=['a is apple','b is banana','c is cherry']
print("\n".join(a))
print("====================")
print("\n".join(a))

产量

a is apple
b is banana
c is cherry
====================
a is apple
b is banana
c is cherry

0
投票

试试这个吧。这将满足您的需求

x,y,z=a
print(x,y,z)

0
投票

这是最简单,最干净的方法(Python 2和3中的通用):

print('\n'.join(a + ["===================="] + a))

这是仅支持Python-3的版本:

print(*(a + ["===================="] + a), sep='\n')
© www.soinside.com 2019 - 2024. All rights reserved.