我试图打印一个数组列表,其中每个数组都是一列。我有以下阵列:
cat=['aba','vdv']
dog=['tul','baba']
我可以通过以下方式实现我想要的:
for x in zip(cat,dog):
print '\t'.join(x)
aba tul
vdv baba
但是如果我想添加更多的列,这会很麻烦,因此我希望能够将cat
和dog
设置为单个变量,然后迭代该变量,并将每个数组作为列打印在如下表中:
cat=['aba','vdv']
dog=['tul','baba']
df=[cat,dog]
for x in zip(df):
print '\t'.join(x)
然而,这会产生一个错误。如有任何建议,将不胜感激
你差一点就到了,只是错过了给zip打电话时的解包
您也可以在不使用for循环的情况下执行此操作,如下所示:
zip
将iterables作为单独的参数接收,而不是在列表中。使用zip(df)
时,实际上是将单个iterable传递给zip([cat, dog]
)。比较:在第一种情况下,
cat
和dog
被认为是独立的可重用项,因此x
在每次迭代中都有这些值:('aba', 'tul',) # (cat[0], dog[0])
('vdv', 'baba') # (cat[1], dog[1])
在第二种情况下
[cat, dog]
被视为单个iterable,因此x
在每次迭代中都有以下值:(['aba', 'vdv'],) # [cat, dog][0]
(['tul', 'baba'],) # [cat, dog][1]
要将列表中的每一项作为单独的参数传递,必须将列表解包为单独的参数:
您还可以用以下内容替换循环:
相关问题 更多 >
编程相关推荐