我在for循环中有两个列表,我想格式化输出

时间:2018-03-26 20:31:29

标签: python python-3.x

我正在尝试为亲戚的种类和姓名获取用户输入。

for relatives in victim['other_relatives_kind'], victim['other_relatives_name']:
    print(relatives)

如果用户输入了['other_relatives_kind']中的Brother和Aunt以及['other_relatives_name']中的Andreas Petersen和Anni Nielsen,我得到了这个输出:

['Brother', 'Aunt']

['Andreas Petersen', 'Anni Nielsen']

如何让输出如下:

  

兄弟:Andreas Petersen

     阿姨:Anni Nielsen

可能有一个"无限制"输入亲属的数量。

1 个答案:

答案 0 :(得分:3)

您可以使用str.join使用任何arbirary分隔符加入str列表。

您可以使用zip将两个列表合并为一个列表,其中每个元素都是两个元素的元组。

以下是使用zipstr.join()的示例:

victim = {
    'other_relatives_kind': ['Brother', 'Aunt'],
    'other_relatives_name': ['Andreas Petersen', 'Anni Nielsen']
}

zipped_data = zip(
    victim['other_relatives_kind'],
    victim['other_relatives_name'])
print ('\n'.join('{kind}: {name}'.format(kind=kind, name=name)
                 for kind, name in zipped_data))

结果:

Brother: Andreas Petersen
Aunt: Anni Nielsen

请注意,使用f-strings可以在Python3.6 +中简化print调用:

print ('\n'.join(f'{kind}: {name}' for kind, name in zipped_data))