首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础知识——内置数据结构(字典)

python基础知识——内置数据结构(字典)

作者头像
felixzhao
发布2019-02-13 15:12:57
3640
发布2019-02-13 15:12:57
举报
文章被收录于专栏:null的专栏null的专栏

    字典是有“键-值”对组成的集合,字典中的“值”通过“键”来引用。“键-值”对之间用逗号隔开,并且被包含在一对花括号中。

1、字典的创建

格式

dictionary_name = {key1 : value1, key2 : value2, ...}

创建空的字典

dictionary_name = {}

例如

dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'}
print dict

输出:{'s': 'shanghai', 'b': 'beijing', 'g': 'guangzhou', 'w': 'wuhan'}

注意:字典将会按照每个元素的Hashcode值进行排序,而且,字典的“键”是区分大小写的。

2、字典的访问

字典与元组或者列表不同,不是通过索引访问的,而是通过“键”值访问value值的。

格式

value = dictionary_name[key]

例如

#coding:UTF-8
dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'}
print dict

#访问'shanghai'
print dict['s']

3、字典元素的添加和修改

在字典中,只需一条赋值语句就实现了字典元素的添加和修改,所不同的是,若增加的元素在字典中不存在就是添加,若已经存在就是修改。

例如

#coding:UTF-8
dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'}
print dict

#添加{'c' : 'chongqing'}
dict['c'] = 'chongqing'
print dict

#修改'wuhan'为'wuchang'
dict['w'] = 'wuchang'
print dict

4、字典中的常用方法

  1. items方法主要用于实现字典的遍历操作,返回的是由若干元组组成的列表。#coding:UTF-8 #items()方法 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} print dict.items() 输出[('s', 'shanghai'), ('b', 'beijing'), ('g', 'guangzhou'), ('w', 'wuhan')]#coding:UTF-8 #使用items()方法遍历字典 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} for (k, v) in dict.items(): print 'dict[%s] = ' % k ,v 输出dict[s] =  shanghai dict[b] =  beijing dict[g] =  guangzhou dict[w] =  wuhan
  2. iteritems方法主要是生成遍历器,用于实现字典的遍历,除此之外还有iterkeys()方法和itervalues()方法。#coding:UTF-8 #使用iteritems()方法遍历字典 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} print dict.iteritems()#构造遍历器 for k, v in dict.iteritems(): print 'dict[%s] = ' % k , v
  3. setdefault方法用于创建新的元素并设置默认值。#coding:UTF-8 #设置默认值 dict = {}#空的字典 dict.setdefault('b')#{'b': None} print dict dict['b'] = 'beijing' #已经设置了'b'对应的值,再设置默认将无效 dict.setdefault('b', 'default') print dict
  4. pop方法用于删除指定的key处的值。#coding:UTF-8 #删除操作 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} #删除key值为's'处的值 dict.pop('s') print dict #coding:UTF-8 #删除操作还有使用内建的方法del() dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} #使用del方法 del(dict['s']) print dict #coding:UTF-8 #字典的清空使用clear()方法 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} #清空 dict.clear() print dict#空的字典
  5. get方法用于得到key键处的值。#coding:UTF-8 #get()方法 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} print dict.get('s')#shanghai
  6. keys方法用于返回字典中的key的列表。#coding:UTF-8 #keys()方法 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} print dict.keys()#['s', 'b', 'g', 'w']
  7. values方法用于返回字典中的value的列表。#coding:UTF-8 #values()方法 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} print dict.values()#['shanghai', 'beijing', 'guangzhou', 'wuhan']
  8. update函数主要实现的是将一个字典中的元素增加到另一个字典中。#coding:UTF-8 #update()方法 dict_1 = {'b' : 'beijing', 's' : 'shanghai'} dict_2 = {'w' : 'wuhan', 'g' : 'guangzhou'} dict_1.update(dict_2) print dict_1 注意,若出现dict_2中有dict_1中的键,则会更新。
  9. sorted排序函数。#coding:UTF-8 #sorted()方法 dict = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} #按照key排序 print sorted(dict.items(), key = lambda d: d[0]) #按照value排序 print sorted(dict.items(), key = lambda d: d[1])
  10. copy函数实现的是字典的浅拷贝。#coding:UTF-8 #copy()方法 dict_1 = {'b' : 'beijing', 's' : 'shanghai', 'w' : 'wuhan', 'g' : 'guangzhou'} dict_2 = {'c' : 'chongqing'} dict_2 = dict_1.copy() print dict_2#{'s': 'shanghai', 'b': 'beijing', 'w': 'wuhan', 'g': 'guangzhou'} 注意:清除了dict_2中原有的元素。浅拷贝是指只拷贝数据不拷贝数据之间的关系,新的数据和旧的数据使用的是同一块内存空间;对应的是深拷贝,既拷贝数据,也拷贝数据之间的关系,新的数据和旧的数据使用的是不同的内存空间。在python中可以使用copy模块来实现对象的深拷贝和浅拷贝,其中的deepcopy()用于深拷贝操作,copy()用于浅拷贝操作。#coding:UTF-8 #copy模块 import copy dict_1 = {'a' : 'beijing', 'b' : {'s' : 'shanghai', 'w' : 'wuhan'}} dict_2 = copy.deepcopy(dict_1)#深拷贝 dict_3 = copy.copy(dict_1)#浅拷贝 dict_2['b']['s'] = 'shenyang' print dict_1#{'a': 'beijing', 'b': {'s': 'shanghai', 'w': 'wuhan'}} dict_3['b']['s'] = 'shenyang' print dict_1#{'a': 'beijing', 'b': {'s': 'shenyang', 'w': 'wuhan'}}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年03月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档