Python学习笔记10_字典(Dictionary)
- 字典是另一种可变容器模型,且可存储任意类型对象。
- 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
- 字典的值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被存储
- 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
- 字典的格式如下:
d = {key1 : value1, key2 : value2, key3 : value3 }
1、字典创建
- 键必须是唯一的,但值则不必。
- 值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
1.1、空字典创建
1)使用大括号 { } 创建空字典:
emptyDict = {}
2)使用内建函数 dict() 创建字典:
emptyDict = dict()
2、访问字典里的值
1)把相应的键放入到方括号中
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
2)如果用字典里没有的键访问数据,会报错:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Alice']: ", tinydict['Alice'])
Traceback (most recent call last):
File "test.py", line 5, in <module>
print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'
3)使用字典的 get 方法
person = {'name': 'zhangsan', 'age': 18,'x':'y'}
print(person.get('name'))
print(person.get('whit'))
print(person.get('geter','falge'))
3、修改字典
1)向字典添加新内容的方法是增加新的键/值对,通过键添加键值对
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8
tinydict['day'] = "Wed"
2)使用字典的 update 方法合并两个字典
person1 = {'name': 'zhangsan', 'age': 18}
person2 = { 'heighe': 185, 'whit': 65}
person1.update(person2)
print(person1)
4、字典的删除操作
- 使用 del() 方法删除单一的元素
- 使用 clear() 方法清空字典
- 使用 del() 方法删除整个字典
- 使用字典的 pop方法,把key对应的键值对删除了,并返回value值
- 使用字典的popitem()方法,删除一个键值对,并返回一个由该键值对组成元素的元组
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name']
tinydict.clear()
del tinydict
person = {'name': 'zhangsan', 'age': 18, 'heighe': 185, 'whit': 65}
print(person.pop('age'))
print(person.popitem())
5、字典的遍历
person = {'name': 'zhangsan', 'age': 18, 'heighe': 185, 'whit': 65}
for k in person:
print(k, ':', person[k])
print(person.keys())
for k in person.keys():
print(k, ':', person[k])
print(person.values())
for v in person.values():
print(v)
print(person.items())
for k, v in person.items():
print(k, ':', v)
'''常用方法一和方法四'''
6、字典推导式
person = {'name': 'zhangsan', 'age': 18, 'heighe': 185, 'whit': 65}
person1 = {}
for k,v in person.items():
person1[v] = k
person = person1
person={v:k for k,v in person.items()}
print(person)
7、字典内置函数&方法
函数 | 描述 |
---|
len(dict) | 计算字典元素个数,即键的总数。 | str(dict) | 输出字典,可以打印的字符串表示。 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
函数 | 描述 |
---|
dict.clear() | 删除字典内所有元素 | dict.copy() | 返回一个字典的浅复制 | dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 | dict.get(key,default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 | key in dict | 如果键在字典dict里返回true,否则返回false | dict.items() | 以列表返回键值对的视图对象 | dict.keys() | 返回键的视图对象 | dict.setdefault(key,default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default | dict1.update(dict2) | 把字典dict2的键/值对合并到dict1里 | dict.values() | 返回值的视图对象 | pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 | popitem() | 返回并删除字典中的最后一对键和值。 |
|