Python 如何从字典中打印?
我想知道如何在一行上打印字典中的所有键,在下一行上打印值,以便它们对齐 任务是用python创建一个纸牌游戏。我已经做了大部分,但我希望在视觉上有所改进。我知道如何使用for循环为每个值和键打印行,但我在学校里做的任务要求我这样做。我还尝试为每一行和printlist1 printlist2创建新的列表,但这看起来很难看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
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