如何在 Python 中打印字典

How to Print Dictionaries In Python

import operator
pay = {}
lowestPay={}
averagePay={}
pay["Developers"]=[35,22,18,36]
pay["Designers"]=[25,65,24,45]
pay["Testers"]=[34,52,12,32]
userInput=int(input("How would you like the menu to be sorted?\n1 for Dictionary keys sorted in alphabetical order\n2 for Sort each list of employee’s pay rates from highest to lowest\n3 for Lowest pay level in each list sorted from highest to lowest\n4 for Average pay per department sorted from highest to lowest"))
if userInput == 1:
    for key,value in pay.items():
        sortedDictionary = sorted(pay)
    print (sortedDictionary)
if userInput == 2:
    for key,value in pay.items():
        value.sort()
        value.reverse()
        print(key,value)
if userInput == 3:
    for key,value in pay.items():
        value.sort()
        lowestPay [key]=value.pop()
        lowestPaySorted = sorted(pay.items(),key=operator.itemgetter(1),reverse=True)
    print (lowestPay)
if userInput == 4:
    for key,value in pay.items():
        average = sum(value)/len(value)
        averagePay [key]=(average)
        averagePaySorted = sorted(averagePay.items(),key=operator.itemgetter(1),reverse=True)
    for keys in averagePaySorted:
        print (keys)
        for value in averagePaySorted[keys]:
            print (value,':',cars[keys][value])

以上是我的列表排序程序。我需要打印字典 averagePaySorted。我对此很陌生,所以我不确定该怎么做,如您所见,我尝试尝试从其他页面打印此内容,但出现此错误:

  ... line 33, in <module>
    for value in averagePaySorted[keys]:
TypeError: list indices must be integers, not tuple

我不知道这意味着什么我需要它看起来像这样

B
color : 3
speed : 60
A
color : 2
speed : 70

但为了节省时间,这是从另一个论坛截取的

你遇到的问题是因为这个场景中的keys是一个元组(key, value)

要打印这个,使用类似于

的东西
for key,value in list:
  print key, ':', value

要打印词典,请查看 pprint。例如,

print pformat(averagePaySorted)

或者,一个更完整的例子:

from pprint import pformat
mydict = {'a': 1, 'b': 2, c: [4, 5, 6]}
print pformat(mydict)

  1. pprint 处理嵌套,
  2. 可以使用高级选项。

例如,

print pformat(mydict, width=1)

产生:

{'a': 1,
 'b': 2,
 'c': [4,
       5,
       6]}