Python 字典的特点和常用操作

一、字典帮助文档

>>> dir(dict)
[‘__class__‘, ‘__cmp__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘clear‘, ‘copy‘, ‘fromkeys‘, ‘get‘, ‘has_key‘, ‘items‘, ‘iteritems‘, ‘iterkeys‘, ‘itervalues‘, ‘keys‘, ‘pop‘, ‘popitem‘, ‘setdefault‘, ‘update‘, ‘values‘]

二、字典的特点

1、字典是无序的,它不能通过偏移来存取,只能通过键来存取。可以嵌套,字典 = {‘key‘:value} key:类似我们现实的钥匙,而value则是锁。一个钥匙开一个锁

>>> info={‘a‘:1,‘b‘:2}
>>> info
{‘a‘: 1, ‘b‘: 2}
>>> info[‘a‘]
1

2、字典内部没有顺序,通过键来读取内容,可嵌套,方便我们组织多种数据结构,并且可以原地修改里面的内容,属于可变类型。

>>> binfo = {‘a‘:[1,2,3],‘b‘:[4,5,6]}
>>> binfo
{‘a‘: [1, 2, 3], ‘b‘: [4, 5, 6]}
>>> binfo[‘a‘][2]=5
>>> binfo
{‘a‘: [1, 2, 5], ‘b‘: [4, 5, 6]}

3、组成字典的键必须是不可变的数据类型,比如,数字,字符串,元组等,列表等可变对象不能作为键.

>>> binfo={1:‘22‘,2:‘dd‘}
>>> binfo
{1: ‘22‘, 2: ‘dd‘}
>>> cinfo={‘22‘:‘222‘,‘aa‘:11}
>>> cinfo
{‘aa‘: 11, ‘22‘: ‘222‘}
>>> dinfo={(1,2,3):‘ss‘,(‘b‘,‘c‘):‘222‘}
>>> dinfo
{(‘b‘, ‘c‘): ‘222‘, (1, 2, 3): ‘ss‘}

元组里面的元素必须也是不可以改变的

>>> dinfo={(1,2,[1,3]):‘ss‘,(‘b‘,‘c‘):‘222‘}
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: list objects are unhashable

三、字典的常用操作

1、创建字典。{},dict()

info = {‘name‘:‘lilei‘, ‘age‘: 20}
>>> info
{‘age‘: 20, ‘name‘: ‘lilei‘}
info  = dict(name=‘lilei‘,age=20)
>>> info
{‘age‘: 20, ‘name‘: ‘lilei‘}

2、添加内容 a[‘xx‘] = ‘xx‘ ,key不存在,即为添加

info[‘phone‘] = ‘iphone5‘
>>> info
{‘phone‘: ‘iphone5‘, ‘age‘: 20, ‘name‘: ‘lilei‘

3、修改内容 a[‘xx‘] = ‘xx‘ ,key存在,即为修改

info[‘phone‘] = ‘htc‘
>>> info
{‘phone‘: ‘htc‘, ‘age‘: 20, ‘name‘: ‘lilei‘}

update 参数是一个字典的类型,会覆盖相同键的值

info.update({‘city‘:‘beijing‘,‘phone‘:‘nokia‘})
>>> info
{‘phone‘: ‘nokia‘, ‘age‘: 20, ‘name‘: ‘lilei‘, ‘city‘: ‘beijing‘} #htc 变成了nokia了

4、删除 del,clear,pop

del info[‘phone‘]  #删除某个元素

>>> info = {‘name‘:‘lilei‘, ‘age‘: 20}
>>> info.update({‘city‘:‘beijing‘,‘phone‘:‘nokia‘})
>>> info
{‘city‘: ‘beijing‘, ‘age‘: 20, ‘name‘: ‘lilei‘, ‘phone‘: ‘nokia‘}
>>> del info[‘city‘]
>>> info
{‘age‘: 20, ‘name‘: ‘lilei‘, ‘phone‘: ‘nokia‘}
>>> del info[‘city‘]  #删除已经不存在的key,会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: ‘city‘

info.clear()删除字典的全部元素

>>> info.clear()
>>> info
{}

pop 删除指定的key

>>> info = {‘name‘:‘lilei‘, ‘age‘: 20}
>>> info
{‘age‘: 20, ‘name‘: ‘lilei‘}
>>> info.pop(‘name‘) #删除key为name的元素,并返回key对应的value
‘lilei‘
>>> info
{‘age‘: 20}
>>> info.pop(‘name‘)  #删除已经不存在的key,会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: ‘name‘
>>> info.pop(‘name‘,‘defalutValue‘) #key不存在,返回指定的值‘defalutValue‘
‘defalutValue‘
>>> info
{‘age‘: 20}

5、字典的pop方法和list的pop方法的区别,字典的pop删除不存在的key时,可以指定默认值

>>> l=[1,2,3,4]
>>> l.pop() #不指定参数,就是pop最后一个元素
4
>>> l
[1, 2, 3]
>>> l.pop(2) #可以具体指定删除哪个元素
3
>>> l.pop(2) #下标不存在的元素会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range

6、in 和 has_key() 成员关系操作

>>> info = {‘name‘:‘lilei‘, ‘age‘: 20}
>>> info
{‘age‘: 20, ‘name‘: ‘lilei‘}
>>> ‘name‘ in info
True
>>> info.has_key(‘name‘)
True

7、keys(): 返回的是列表,里面包含了字典的所有键

values():返回的是列表,里面包含了字典的所有值

items:生成一个字典的容器:[()]

>>> info = {‘name‘:‘lilei‘, ‘age‘: 20}
>>> key=info.keys()
>>> key
[‘age‘, ‘name‘]
>>> values=info.values()
>>> values
[20, ‘lilei‘]
>>> info.items()
[(‘age‘, 20), (‘name‘, ‘lilei‘)]

8、get:从字典中获得一个值

>>> info = {‘name‘:‘lilei‘, ‘age‘: 20}
>>> info
{‘age‘: 20, ‘name‘: ‘lilei‘}
>>> info.get(‘name‘)
‘lilei‘
>>> b=info.get(‘age21‘) #如果是不存在的key,则返回NoneType
>>> type(b)
<type ‘NoneType‘>
>>> info.get(‘age2‘,‘22‘)#如果是不存在的key,可以指定返回一个默认值
‘22‘

练习:

已知字典:ainfo = {‘ab‘:‘liming‘,‘ac‘:20}

完成下面的操作

1 使用2个方法,输出的结果:

ainfo = {‘ab‘:‘liming‘,‘ac‘:20,‘sex‘:‘man‘,‘age‘:20}

>>> ainfo = {‘ab‘:‘liming‘,‘ac‘:20}

>>> ainfo[‘sex‘]=‘man‘

>>> ainfo[‘age‘]=20

>>> ainfo

{‘ac‘: 20, ‘ab‘: ‘liming‘, ‘age‘: 20, ‘sex‘: ‘man‘}

>>> ainfo.update({‘sex‘:‘man‘,‘age‘:20})

>>> ainfo

{‘ac‘: 20, ‘ab‘: ‘liming‘, ‘age‘: 20, ‘sex‘: ‘man‘}

2 输出结果:[‘ab‘,‘ac‘]

>>> ainfo.keys()[0:2]

[‘ac‘, ‘ab‘]

3 输出结果:[‘liming‘,20]

4 通过2个方法返回键名ab对应的值。

5 通过2个方法删除键名ac对应的值。

时间: 2024-10-05 21:57:21

Python 字典的特点和常用操作的相关文章

Python列表list 数组array常用操作集锦【转】

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构. 创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 del sample_list[0] 在列表中插入一个值 sample_list[0:0

python接口自动化测试二:常用操作

url = '接口地址' r = requests.get(url)                      # 发送get请求 print(r.status_code)              # 打印状态码,若有重定向,返回的是重定向之后的代码 print(r.headers)                 # 打印返回的报头(头部) print(r.text)                    # 查看返回结果的文本形式 r.status_code               

Python学习杂记_5_列表常用操作

列表操作 列表时用方括号括起来的一组元素值,是可变变量,可通过下表取值,也可以通过下表来修改值,列表中的元素是有序的,可以是不同的基本数据类型,如: names=[1, 2, 3, "abc", "def"] 列表取值时,下标也是从0开始,最大下标是元素个数减1,即len(names)-1 列表操作的常用方法: 增: names.append('zhaocunlei')            #从末尾追加元素 names.insert(0,'yinwenqiao')

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no

Python元组类型、字典类型及常用操作

一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1,6,(5,''),{}) #t=tuple((1,6,(5,''),{})) t1=tuple('hello') 3.常用操作+内置的方法 优先掌握的操作:1.按索引取值(正向取+反向取):只能取 t=(1,6,(5,''),[1,5,3]) t[0]='1' 2.切片(顾头不顾尾,步长) t=(

python数据类型:字典dict常用操作

字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,bool,tuple,list,dict,set),包括后面要学的实例对象等. 在Python3.5版本(包括此版本)之前,字典是无序的. 在Python3.6版本之后,字典会按照初建字典时的顺序排列(即第一次插入数据的顺序排序). 当然,字典也有缺点:他的缺点就是内存消耗巨大. 优点:查询速度快,映射型

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符

Python 字典常用操作

Python字典常用的定义方法 直接定义一个字典dict1 = {'x': 1, 'y': 2, 'z': 3} 利用dict方法定义一个字典dict2 = dict(x=1, y=2, z=3) 利用dict方法定义一个字典dict3 = dict((('x', 1), ('y', 2), ('z', 3))) dict内建方法fromkeys创建并返回一个新字典dict4 = dict4.fromkeys('x', '1')也可以用循环的方式生成字典:dict4.fromkeys(range

python MySQLdb 常用操作

我采用的是MySQLdb操作的MYSQL数据库.先来一个简单的例子吧: import MySQLdb try:     conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)     cur=conn.cursor()     cur.execute('select * from user')     cur.close()     conn.close() except MySQL