假设我有3个这样的列表
l1 = [1,2,3]
l2 = [4,5,6]
l3 = [7,8,9]
我怎样才能同时打印出这些列表中的所有内容呢?,用Python的方法做这样的事情是什么呢?
for f in l1,l2 and l3:
print f
这似乎只考虑了2个列表。
预期输出:对于所有列表中的每个元素,我使用不同的函数将它们打印出来
def print_row(filename, status, Binary_Type):
print " %-45s %-15s %25s " % (filename, status, Binary_Type)
在for循环中调用上面的函数。
8条答案
按热度按时间aor9mmx11#
我想你可能需要
zip
:你在做什么:
有点奇怪,它基本上等价于
for f in (l1,l3):
,因为l2 and l3
返回l3
(假设l2
和l3
都非空--否则,它将返回空的)。如果您只想连续打印每个列表,可以执行以下操作:
ru9i0ody2#
不需要使用
zip
,只需要使用+
操作符将它们加在一起。l1 + l2 + l3
创建了一个新的列表,它是l1
、l2
和l3
的组合,因此您可以简单地循环通过该列表,如下所示:你对
and
操作符的使用是不正确的。你的代码不能工作的另一个原因是使用逗号(比如l1, l2, l3
)创建了一个元组,它是一个容器,现在保存了你的3个列表。所以当你试图循环通过l1, l2, l3
时,它会循环通过元组中的每个元素(列表),而不是你想要的列表中的每个元素。bprjcwpo3#
如果你想打印
执行:
rnmwe5a24#
这取决于你想达到什么目标,
或者下面的在Python 2.7中有效的实现
evrscar25#
如果你的列表长度不一样,那么使用
map
会更好:plicqrtu6#
要在Abhijit答案的基础上进行扩展,您可以使用itertools生成器作为列表解析中的可迭代对象。
vyu0f0g17#
如果你的意思是你有3个等长的列表,并且你想把它们的内容打印成3列,那么在每次迭代中用zip()连接列和用print()解析列表怎么样?
上面的代码将打印元组的repr。如果你想格式化这些值:
没有人说你必须 * 使用 * 列表解析的输出。
djmepvbi8#
我更喜欢使用三个带 if 条件的 for 循环。