繁体   English   中英

如何在一行中使用for循环打印列表

[英]how to print a list with use for loop in one line

ids = (['1', '020021', 'AAA'],
['2', '070031', 'BBB'],
['3', '519601', 'CCC'],
['4', '110021', 'DDD'])

for x,y,z in ids:
    print(x,y,z)

如何用一行写出来? 下面抛出异常。

print('\n'.join(*ids))

这不起作用的原因有两个:

  1. '\\n'.join仅接受一个参数:字符串的可迭代值;
  2. 您提供的对象不是字符串 ,而是列表,因此join函数不知道如何处理这些对象。

然后,您需要自己使用'{} {} {}.format(..)格式化每一行:

print('\n'.join('{} {} {}'.format(*idi) for idi in ids))

因此,我们遍历idsidi ,然后对于每一行,将'{} {} {}'.format(*idi)到结果中,然后将它们连接在一起并换行。

这将产生:

>>> print('\n'.join('{} {} {}'.format(*idi) for idi in ids))
1 020021 AAA
2 070031 BBB
3 519601 CCC
4 110021 DDD

如果“列”的数目是任意的,我们也可以使用join代替格式字符串:

print('\n'.join(' '.join(str(idij) for idij in idi) for idi in ids))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM