リストのリストにいくつかのデータがあります。フォーマットを使用して表に均等に印刷しようとしていますが、長さが異なると実際にはうまくいきません。これを簡単に行う方法はありますか?または、各列の最大値を計算し、他の列にスペースを埋め込むなど、厄介なことをする必要がありますか?
table_data = [['vlan1', '0013.F200.0058', '192.168.2.2'],
['vlan20', '0013.F200.0058', '192.168.30.2'],
['vlan20', '0010.600a.7026', '192.168.30.4'],
['vlan20', '70ca.9b99.6a82', '192.168.30.1'],
['vlan100', '0013.F200.0058', '192.168.110.2']]
for i in table_data:
interface,mac,ip = i
print "Internet {} {:>18s} {:>7s} {:>8s}".format(ip, mac,'ARPA' ,interface)
Protocol Address Hardware Addr Type Interface
Internet 192.168.2.2 0013.F200.0058 ARPA vlan1
Internet 192.168.30.2 0013.F200.0058 ARPA vlan20
Internet 192.168.30.4 0010.600a.7026 ARPA vlan20
Internet 192.168.30.1 70ca.9b99.6a82 ARPA vlan20
Internet 192.168.110.2 0013.F200.0058 ARPA vlan100