好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python字典的操作总结(附示例)

本篇文章给大家带来的内容是关于Python字典的操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

字典(dict)结构是Python中常用的数据结构,笔者结合自己的实际使用经验,对字典方面的相关知识做个小结,希望能对读者一些启发~

创建字典

常见的字典创建方法就是先建立一个空字典,然后逐一添加键(key)和值(value),比如创建字典person={'name':'Tome', 'age':22, 'city':'Shanghai, 'ID': '073569'},可以使用以下代码:

person = {}
person['name'] = 'Tom'
person['age'] = 22
person['city'] = 'Shanghai'
person['ID'] = '073569'
print(person) 

输出 结果为:

{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'} 

这样的创建方式简单原始,代码不够简洁优雅。我们用zip函数,来简单快捷地创建这个字典:

attrs = ['name', 'age', 'city', 'ID']
values = ['Tom', 22, 'Shanghai', '073569']
person = dict(zip(attrs, values))
print(person) 

输出结果与原先代码一致。

遍历字典

在实际应用中,我们常常需要遍历字典,实现的方法可参考以下代码:

attrs = ['name', 'age', 'city', 'ID']
values = ['Tom', 22, 'Shanghai', '073569']
person = dict(zip(attrs, values))

for key, value in person.items():
    print('Key:%-6s, Value:%s'%(key, value)) 

输出 结果为:

Key:name  , Value:Tom
Key:age   , Value:22
Key:city  , Value:Shanghai
Key:ID    , Value:073569 

对调键值对

在实际应用中,有时候我们需要查找字典中某个值(value)对应的键(key),遍历字典是一种选择,对调键值对是另一种选择。对调键值对的实现代码如下:

attrs = ['name', 'age', 'city', 'ID']
values = ['Tom', 22, 'Shanghai', '073569']
person = dict(zip(attrs, values))
print('对调前:')
print(person)
Person = {v:k for k,v in person.items()}
print('对调后:')
print(Person) 

输出 结果为:

对调前:
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
对调后:
{'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'} 

有序字典OrderedDict

Python中的字典是无序的,其取出来的键是无序的,因为它是按照hash来储存的。有时候,我们需要字典的条目(items)或键(keys)是有序储存的,这时候可以使用 collections 模块中的 OrderedDict ,它是一种有序的字典结构。
示例代码如下(Python版本为3.5.2):

from collections import OrderedDict
d = {}
d['Tom']='A'
d['Jack']='B'
d['Leo']='C'
d['Alex']='D'
print('无序字典(dict):')
for k,v in d.items():
    print(k,v)
d1 = OrderedDict()
d1['Tom']='A'
d1['Jack']='B'
d1['Leo']='C'
d1['Alex']='D'
print('\n有序字典(OrderedDict):')
for k,v in d1.items():
    print(k,v) 

输出的 结果为:

无序字典(dict):
Leo C
Jack B
Tom A
Alex D
有序字典(OrderedDict):
Tom A
Jack B
Leo C
Alex D 

默认字典collections.defaultdict

   collections.defaultdict 是Python内建 dict 类的一个子类,第一个参数为 default_factory 属性提供初始值,默认为 None 。它覆盖一个方法并添加一个可写实例变量。它的其他功能与 dict 相同,但会为一个不存在的键提供默认值,从而避免 KeyError 异常。
  我们以统计列表中单词的词频为例,展示 collections.defaultdict 的优势。
  一般情形下,我们统计列表中的单词词频代码为:

words = ['sun', 'moon', 'star', 'star',\
         'star', 'moon', 'sun', 'star']
freq_dict = {}
for word in words:
    if word not in freq_dict.keys():
        freq_dict[word] = 1
    else:
        freq_dict[word] += 1
for key, val in freq_dict.items():
    print(key, val) 

输出结果如下:

sun 2
moon 2
star 4 

  使用 collections.defaultdict ,代码可以优化:

from collections import defaultdict

words = ['sun', 'moon', 'star', 'star',\
         'star', 'moon', 'sun', 'star']

freq_dict = defaultdict(int)
for word in words:
    freq_dict[word] += 1

for key, val in freq_dict.items():
    print(key, val) 

其它默认初始值可以为set,list,dict等。

以上就是Python字典的操作总结(附示例)的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于Python字典的操作总结(附示例)的详细内容...

  阅读:56次