繁体   English   中英

循环打印两个列表,以获得两列在每个列表的每个元素的第一个字母之间具有固定(自定义集)空间

[英]Loop print through two lists to get two columns with fixed(custom set) space between the first letter of each element of each list

假设我有这两个列表:

column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]

如何使用自定义的固定空间(例如10,如示例)循环打印这两个列表,从第一个列表的每个元素的第一个字母开始,直到第二个列表的每个元素的第一个字母?

设置间距为10的示例输出:

soft      skin
pregnant  woman 
tall      man

轻松完成字符串格式化

column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]

for c1, c2 in zip(column1, column2):
    print "%-9s %s" % (c1, c2)

或者您可以使用str.ljust ,如果您希望填充基于变量, str.ljust整洁:

padding = 9
for c1, c2 in zip(column1, column2):
    print "%s %s" % (c1.ljust(padding), c2)

(注意:填充是9而不是10因为单词之间的硬编码空间)

怎么样:

>>> column1 = ["soft","pregnant","tall"]
>>> column2 = ["skin","woman", "man"]
>>> for line in zip(column1, column2):
...     print '{:10}{}'.format(*line)
... 
soft      skin
pregnant  woman
tall      man
column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]

for row in zip(column1, column2):
    print "%-9s %s" % row # formatted to a width of 9 with one extra space after

使用Python 3

column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]

for line in zip(column1, column2):
    print('{:10}{}'.format(*line))

使用新样式字符串格式的一个班轮:

>>> column1 = ["soft", "pregnant", "tall"]
>>> column2 = ["skin", "woman", "man"]

>>> print "\n".join("{0}\t{1}".format(a, b) for a, b in zip(column1, column2))

soft        skin
pregnant    woman
tall        man

暂无
暂无

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

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