首页 > 解决方案 > Python 字典和使用格式化打印出元素

问题描述

大家好,我正在努力学习字典,我有这样的字典。

myContacts = {"Fred": 7235591, "Marry": 3841212,
               "Bob": 3841212, "Sarah": 2213278}

我写了这段代码,它打印出给定字典中的所有名称和数字。我怎么能这样打印出来;

例如:

Bob 384-1212

我怎么能把“-”那个想法放在中间。

我的代码;

def printAll(contacts):
    print("All names and numbers:")
    for key in sorted(contacts):
        print("%-10s  %d" % (key,contacts[key]))
printAll(myContacts)

打印出来;

All names and numbers:
Bob         3841212
Fred        7235591
Marry       3841212
Sarah       2213278

标签: python-3.xdictionaryformatting

解决方案


您可以将数字转换为字符串,然后在中间切片:

myContacts = {"Fred": 7235591, "Marry": 3841212,
               "Bob": 3841212, "Sarah": 2213278}

def printAll(contacts):
    print("All names and numbers:")
    for key in sorted(contacts):
        s = str(contacts[key])
        firstpart, secondpart = s[:len(s)//2], s[len(s)//2:]
        print('{:<10} {}-{}'.format(key,  firstpart, secondpart))

printAll(myContacts)

印刷:

All names and numbers:
Bob        384-1212
Fred       723-5591
Marry      384-1212
Sarah      221-3278

推荐阅读