最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 14:20:42
文档

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

Python字典的操作总结(附示例):本篇文章给大家带来的内容是关于Python字典的操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。字典(dict)结构是Python中常用的数据结构,笔者结合自己的实际使用经验,对字典方面的相关知识做个小结,希望能对读者一些
推荐度:
导读Python字典的操作总结(附示例):本篇文章给大家带来的内容是关于Python字典的操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。字典(dict)结构是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('
有序字典(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字典的操作总结(附示例)

Python字典的操作总结(附示例):本篇文章给大家带来的内容是关于Python字典的操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。字典(dict)结构是Python中常用的数据结构,笔者结合自己的实际使用经验,对字典方面的相关知识做个小结,希望能对读者一些
推荐度:
标签: 操作 实例 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top