对齐两个列表中的项目(简单python)

对齐两个列表中的项目(简单python),python,Python,我想知道如何将一个列表中的每个项目与第二个列表中的相应索引对齐。以下是我目前的代码: letters=['a','ab','abc','abcd','abcde','abcdef','abcdefg','abcdefgh','abcdefghi','abcdefghij'] numbers=[1,2,3,4,5,6,7,8,9,10] for x in range(len(letters)): print letters[x]+"----------",numbers[x] 这是我得

我想知道如何将一个列表中的每个项目与第二个列表中的相应索引对齐。以下是我目前的代码:

letters=['a','ab','abc','abcd','abcde','abcdef','abcdefg','abcdefgh','abcdefghi','abcdefghij']
numbers=[1,2,3,4,5,6,7,8,9,10]

for x in range(len(letters)):
    print letters[x]+"----------",numbers[x]
这是我得到的输出:

a---------- 1
ab---------- 2
abc---------- 3
abcd---------- 4
abcde---------- 5
abcdef---------- 6
abcdefg---------- 7
abcdefgh---------- 8
abcdefghi---------- 9
abcdefghij---------- 10
这是我想要的输出:

a---------- 1
ab--------- 2
abc-------- 3
abcd------- 4
abcde------ 5
abcdef----- 6
abcdefg---- 7
abcdefgh--- 8
abcdefghi-- 9
abcdefghij- 10

使用
string.formatting
,类似这样的内容:

def solve(letters,numbers):
    it=iter(range( max(numbers) ,0,-1))
    for x,y in zip(letters,numbers):
        print "{0}{1} {2}".format(x,"-"*next(it),y)
   ....:         

In [38]: solve(letters,numbers)
a---------- 1
ab--------- 2
abc-------- 3
abcd------- 4
abcde------ 5
abcdef----- 6
abcdefg---- 7
abcdefgh--- 8
abcdefghi-- 9
abcdefghij- 10

使用
string.formatting
,类似这样的内容:

def solve(letters,numbers):
    it=iter(range( max(numbers) ,0,-1))
    for x,y in zip(letters,numbers):
        print "{0}{1} {2}".format(x,"-"*next(it),y)
   ....:         

In [38]: solve(letters,numbers)
a---------- 1
ab--------- 2
abc-------- 3
abcd------- 4
abcde------ 5
abcdef----- 6
abcdefg---- 7
abcdefgh--- 8
abcdefghi-- 9
abcdefghij- 10

您可以使用字符串格式:

for left, right in zip(letters, numbers):
    print '{0:-<12} {1}'.format(left, right)

您可以使用字符串格式:

for left, right in zip(letters, numbers):
    print '{0:-<12} {1}'.format(left, right)

试试制表符。也。祝你好运试试制表符。也。祝你好运这是最好的可读性和坚持接吻规则。唯一需要知道的是第一部分的最大长度,其余部分只是用它来替换“
12
”。这是可读性最好的,并且遵守KISS规则。唯一需要知道的是第一部分的最大长度——其余部分只是用它替换“
12
”。
letters=['a','ab','abc','abcd','abcde','abcdef','abcdefg','abcdefgh','abcdefghi','abcdefghij']
numbers=[1,2,3,4,5,6,7,8,9,10]

for x in range(len(letters)):
    print '{0:11}{1}'.format(letters[x],numbers[x]).replace(' ','-');


a----------1
ab---------2
abc--------3
abcd-------4
abcde------5
abcdef-----6
abcdefg----7
abcdefgh---8
abcdefghi--9
abcdefghij-10