3

我对如何解决这个格式问题感到困惑。我怀疑这是因为存在两个变量而不是一个变量,这反过来又将其全部关闭。

这是我目前的输出..

Bin Range    Count
0-9           1   
20-29          1 

我正在努力实现..

Bin range    Count
0-9            1
20-29          1

我的这段代码是..

counter = collections.Counter()
for py_filename in glob.glob('*.py'):
    with open(py_filename) as f:
        linecount = sum(1 for line in f)
        counter[linecount//10] += 1

print('\n{0}    {1}'.format('Bin Range', 'Count'))

for i,n in sorted(counter.items()):
    print('{}-{:<12}{:<4}'.format(i * 10, (i + 1) * 10 - 1, n))

我假设如果该0-9部分都是一个变量,那么这不会是一个问题,但是有没有办法根据格式规则对两个变量进行分组,或者我只需要找出一种更有效的方法来处理我的结果。

为帮助干杯!

4

2 回答 2

2

为什么不直接使用子格式,例如:

for i,n in sorted(counter.items()):
    binrange='{}-{}'.format(i*10, (i + 1) * 10 - 1)
    print('{:<12}{:<4}'.format(binrange, n))
于 2013-05-30T05:45:11.847 回答
1

您可以width根据第一项的字符串长度创建一个变量:

In [1]: items = [[0, 9, 1], [20, 29, 1]]

In [2]: for x, y, z in items:
   ...:     print '{}-{:<{width}}{}'.format(x, y, z, width=10-len(str(x)))
   ...:     
0-9        1
20-29      1
于 2013-05-30T05:47:22.733 回答