【问题标题】:print uneven list of lists in columns with python使用python在列中打印不均匀的列表列表
【发布时间】:2020-10-22 02:10:17
【问题描述】:

我有两个列表

list1 = ['ipv6']
list2 = ['autodiscover', 'cdn0', 'dev', 'email', 'link', 'mail', 'shop', 'www']

使用以下打印命令和格式,我试图将两个列表打印在由“|”分隔的单独列中字符。


 print("{:<25} {:<1} {:<15}".format('\n'.join(list1), '|', '\n'.join(list2)))

每个列表中的第一项正确对齐,但是 list2 中的所有后续项目都对齐到终端的左侧。

Tags                      Subdomains
----------------------------------------------------------------------------------------------------
ipv6                      | autodiscover
cdn0
dev
email
link
mail
shop
www

使用标准 Python3 模块(无 3rd 方模块)我将如何对齐列表中的其他项目?

【问题讨论】:

  • 这能回答你的问题吗? stackoverflow.com/a/26005077/1024832
  • 所有示例都有相同长度的列表,并且一些解决方案使用了 3rd 方模块,例如 pandas、tableit 和 tabulate。感谢您的关注。

标签: python-3.x list format multiple-columns


【解决方案1】:

如果您不想使用其他库,这有点 hacky,但如果您填充 list1,它会起作用:

list1 = ['ipv6']
list2 = ['autodiscover', 'cdn0', 'dev', 'email', 'link', 'mail', 'shop', 'www']
pad = ['']*(len(list2)-len(list1))
for i,j in zip(list1+pad, list2):
    print(f"{i:<25} | {j:<15}")

输出:

ipv6                      | autodiscover   
                          | cdn0           
                          | dev            
                          | email          
                          | link           
                          | mail           
                          | shop           
                          | www            

【讨论】:

  • 成功了,谢谢。我能够拥有一个正确对齐的表格,其代码比我所走的路线少得多。
猜你喜欢
  • 2015-02-24
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多