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

时间:2017-11-20 10:30:53

标签: python python-3.x printing

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 个答案:

答案 0 :(得分:1)

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

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

    自行格式化每一行
    print('\n'.join('{} {} {}'.format(*idi) for idi in ids))
    

    因此,我们迭代idi的{​​{1}},然后对于每个这样的行,我们将ids添加到结果中,然后将它们与新行一起加入。< / p>

    这会产生:

    '{} {} {}'.format(*idi)

    如果&#34;列数&#34;是任意的,我们也可以使用>>> print('\n'.join('{} {} {}'.format(*idi) for idi in ids)) 1 020021 AAA 2 070031 BBB 3 519601 CCC 4 110021 DDD 而不是格式字符串:

    join