Python 3 教程 在线

1083Python3 字典

通过 values 取到 key 的方法:

>>> dic={"a":1,"b":2,"c":3}
>>> list(dic.keys())[list(dic.values()).index(1)]
'a'

1082Python3 字典

Python3.x 中会碰到这样的问题:

>>> sites_link = {'runoog':'facesho.com', 'google':'google.com'}
>>> sides = sites_link.keys()
>>> print(sides[0])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object does not support indexing
>>> 

原因说明及解决方法:

dict.values()
dict.keys()

在 python2.x dict.keys 返回一个列表,但是在在 Python 3.x 下,dict.keys 返回的是 dict_keys 对象,若需要转换为列表,请使用:

list(dict.values())
list(dict.keys())

修改上面实例:

>>> sites_link = {'runoog':'facesho.com', 'google':'google.com'}
>>> sides = sites_link.keys()
>>> list(sides)
['runoog', 'google']
>>>

1081Python3 字典

字典字段的比较

获取字典中最大的值及其键:

prices = {
    'A':123,
    'B':450.1,
    'C':12,
    'E':444,
}

max_prices = max(zip(prices.values(), prices.keys()))
print(max_prices) # (450.1, 'B')

1080Python3 字典

循环显示字典 key 与 value 值:
b= {'a':'facesho','b':'google'}
for i in b.values():
    print(i)
for c in b.keys():
    print(c)

执行输出结果为:

facesho
google
a
b

1079Python3 字典

字典可以通过以下方法调换 key和 value,当然要注意原始 value 的类型,必须是不可变类型:

dic = {
    'a': 1,
    'b': 2,
    'c': 3,
}

reverse = {v: k for k, v in dic.items()}

print(dic)
print(reverse)

输出如下:

{'a': 1, 'b': 2, 'c': 3}
{1: 'a', 2: 'b', 3: 'c'}