Python之旅:字典
Python数据类型
#作用:存多个值,key:value 存取,取值速度快
#定义:key必须是不可变类型,value可以是任意类型
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可以如此创建值
dict1 = { 'abc': 456 }; dict2 = { 'abc': 123, 98.6: 37 };
访问字典里的值
把相应的键放入熟悉的方括弧,如下实例:
dict = {'Name': 'Alex', 'Age': 7, 'Class': 'First'} print (dict['Name'],dict['Age'])
>>> Alex
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} dict['Age'] = 8; # 更新 Age dict['School'] = "lin" # 添加信息 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])
以上实例输出结果:
dict['Age']: 8 dict['School']: lin
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del dict['Name'] # 删除键 'Name' dict.clear() # 清空字典 del dict # 删除字典 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])
但这会引发一个异常,因为用执行 del 操作后字典不再存在:
Traceback (most recent call last): File "test.py", line 9, in <module> print ("dict['Age']: ", dict['Age']) TypeError: 'type' object is not subscriptable
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
dict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Allen'} print ("dict['Name']: ", dict['Name'])
>>> dict['Name']: Allen
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
dict = {['Name']: 'Runoob', 'Age': 7} print ("dict['Name']: ", dict['Name'])
#以上实例输出结果:
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'
字典内置函数&方法
Python字典包含了以下内置函数:
序号 |
函数及描述 |
实例 |
---|---|---|
1 | len(dict) 计算字典元素个数,即键的总数。 |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(dict)
3
|
2 | str(dict) 输出字典,以可打印的字符串表示。 |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> str(dict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
|
优先掌握的操作:
#1、按key存取值:可存可取
#2、长度len
#3、成员运算in和not in
#4、删除
#5、键keys(),值values(),键值对items()
#6、循环
#1、按key存取值:可存可取 dic={'name':'allen'} dic['age']=18 # 存值 print(dic) >>> {'name': 'allen', 'age': 18} dic['name']='egon' print(dic) >>> {'name': 'egon', 'age': 18} #2、长度len dic={'name':'egon','age':18} print(len(dic)) >>> 2 #3、成员运算in和not in dic={'name':'egon','age':18} if 'egon' in dic['name']: print('1') else: print('2') >>> 1 ______________________________ dic={'name':'egon','age':18} if 'egon'not in dic['name']: print('1') else: print('2') >>> 2 #4、删除 dic={'name':'egon','age':18} del dic['name'] print(dic) #删除键同样也删除了值 #5、键keys(),值values(),键值对items() dic={'name':'egon','age':18} print(dic.keys()) #打印出key的值 >>> dict_keys(['name', 'age']) print(dic.values()) #打印出键的值 >>> dict_values(['egon', 18]) print(dic.items()) #打印出键值,即key,value >>> dict_items([('name', 'egon'), ('age', 18)]) #6、循环 for x in dic.keys(): print(x) >>> name >>> age for value in dic.values(): print(value) >>> egon >>> 18 for k,v in dic.items(): #k,v=('name', 'egon') print(k,v) >>> name egon >>> age 18
需要掌握的操作:
序号 | 函数 | 描述 |
1 | get(key,default=None) | Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。 |
2 | popitem | Python 字典 popitem() 方法随机返回并删除字典中的一对键和值。
如果字典已经为空,却调用了此方法,就报出KeyError异常。 |
3 | setdefault(key,default=None) | Python 字典 setdefault() 方法和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。字典有中有key,则不修改,返回原key对应的原值; 没有对应的key,则添加,返回添加的key对应的value |
4 | fromkeys(seq[, value])) | Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。 |
5 | update(dict2) | Python 字典 update() 函数把字典dict2的键/值对更新到dict里。 |
6 | pop(key[,default]) | Python 字典 pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
7 |
clear() |
Python 字典 clear() 函数用于删除字典内所有元素。 |
作者:墨颜丶—— 在南方的北方少年郎
签名:当你的才华还撑不起你的野心的时候,你就应该静下心来学习
出处:http://www.cnblogs.com/moyand/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。