Python 如何从字典中打印?

Python 如何从字典中打印?,python,python-3.x,Python,Python 3.x,我想知道如何在一行上打印字典中的所有键,在下一行上打印值,以便它们对齐 任务是用python创建一个纸牌游戏。我已经做了大部分,但我希望在视觉上有所改进。我知道如何使用for循环为每个值和键打印行,但我在学校里做的任务要求我这样做。我还尝试为每一行和printlist1 printlist2创建新的列表,但这看起来很难看 FireKort ={ 'A': None,#in my code i have the cards as objects here with valu

我想知道如何在一行上打印字典中的所有键,在下一行上打印值,以便它们对齐

任务是用python创建一个纸牌游戏。我已经做了大部分,但我希望在视觉上有所改进。我知道如何使用for循环为每个值和键打印行,但我在学校里做的任务要求我这样做。我还尝试为每一行和printlist1 printlist2创建新的列表,但这看起来很难看

    FireKort ={
        'A': None,#in my code i have the cards as objects here with value 
    #and type
        'B': None,#ex. object1: 8, cloves; object2: King, hearts 
        'C': None,
        'D': None,
        'E': None,
        'F': None,
        'G': None,
        'H': None
        }
    def f_printK():
        global FireKort
        for key in FireKort:
            print('Stokk:',key,' Gjenstående:',len(FireKort[key]))
            try:
                print(FireKort[key][0].sort, FireKort[key][0].valør)
            except:
                print('tom')


    ##here are the lists i tried:
    ##    navn=[]
    ##    kort=[]
    ##    antall=[]
    ##    for key in FireKort:
    ##        navn.append((key+' '))
    ##        kort.append([FireKort[key][0].sort,FireKort[key][0].valør])
    ##        antall.append(  str(len(FireKort[key])))
    ##    print(navn)
    ##    print(kort)
    ##    print(antall)
A B C D E F G H [♦9][♣[答][♠Q][♣8][♦8][♣J][♣10][♦7] 4你试过使用pprint吗

pprint模块提供了“漂亮地打印任意Python数据结构”的功能

试试这个:

d = { ... }
keys = [ str(q) for q in d.keys() ]
values = [ str(q) for q in d.values() ]
txts = [ (str(a), str(b)) for a, b in zip(keys, values) ]
sizes = [ max(len(a), len(b)) for a, b in txts ]
formats = [ '%%%ds' % q for q in sizes ]
print(' '.join(a % b for a, b in zip (formats, keys)))
print(' '.join(a % b for a, b in zip (formats, values)))
简言之:

首先,我们得到键的str值和字典d的值,因为我们要使用它们两次,所以我们最好将它们存储在本地 我们计算每个列的最大大小 我们为%operator创建格式 我们打印 这可以用str的ljust方法来完成。 例如:

输出:

A         B         C         D         E        
some      words     of        different length   
请注意,我利用了这样一个事实:若在给定的dict中,.keys和.values之间并没有执行任何操作,那个么它们将以相同的顺序返回key和value

A         B         C         D         E        
some      words     of        different length