字典
定义
字典是除列表以外python中使用最灵活的内置数据类型。是一种可变的数据类型。
字典是无序的,通过键key访问元素
语法
dic = {key1:value1,key2:value2,…,} 键值对
空字典 dic = {}
注意
值可以是任意数据类型,键必须是不可变类型,即key必须可哈希。
可哈希=>不可变 不可哈希=>可变
info = {'id':105,['name']:20}
print(info[0])
无序,不能这样索引
info = {'id':105,'name':20}
print(info['id'])
105
创建字典
key1,key2 = 'tom','jim'
value1,value2 = 1,2
dic = {key1:value1,key2:value2}
print(dic)
{‘tom’: 1, ‘jim’: 2}
强转
dic = dict(id= 10500,name = 'tom')
print(dic)
{‘id’: 10500, ‘name’: ‘tom’}
zip()映射
key = ('id','name')
value = (10500,'tom')
dic = dict(zip(key,value))
print(dic)
{‘id’: 10500, ‘name’: ‘tom’}
通过字典的fromkeys方法创建字典
语法:dict.fromkeys(seq,val = None)
创建并返回一个字典
1.以seq中的元素作为该字典的键
2.val的值作为该字典中所有键对应的初始值;如果不提供,则默认为None
dic = dict.fromkeys('tom','jim','jack',1)
print(dic)
报错(最多两个参数)
dic = dict.fromkeys(['tom','jim','jack'],1)
print(dic)
{‘tom’: 1, ‘jim’: 1, ‘jack’: 1}
字典的常见操作
增
直接添加键值对 dic[key] = value
通过使用变量名[‘键’]='值
- 如果key不存在,则新建键值对
- 如果key存在,则更新值
dict = {'id': 101, 'name': 'tom', 'age': 18}
dict['id']=100
dict['work']='python'
print(dict)
{‘id’: 100, ‘name’: ‘tom’, ‘age’: 18, ‘work’: ‘python’}
dict.update(dic)
把字典dic中的键值对(key:value)更新到dict中
两个字典的键完全不同,则将dic的键值对全部添加到dict中
若存在相同的键,则更新dict中对应的值
删
dict.pop
格式 dict.pop(key)
如果key存在dict中,删除并返回dict[key]
如果不存在,给出默认值则返回默认值,未给出默认值则报错
dict = {'id':101,'name':'tom'}
print(dict.pop('id'))
print(dict)
101
{‘name’: ‘tom’}
dict.popitem()
随机删除一对键值对(基本是最后一对),并以元组形式返回
dict = {'id':101,'name':'tom'}
print(dict.popitem())
print(dict)
(‘name’, ‘tom’)
{‘id’: 101}
dict.clear()
dict = {'id':101,'name':'tom','age':18}
print(dict.clear())
print(dict)
None
{}
del dict[key]
dict = {'id':101,'name':'tom','age':18}
del dict['id']
print(dict)
{‘name’: ‘tom’, ‘age’: 18}
改
索引‘键‘修改
dict = {'id': 101, 'name': 'tom', 'age': 18}
dict['id'] = 100
print(dict)
{‘id’: 100, ‘name’: ‘tom’, ‘age’: 18}
dict.setdefault()
键存在,不改动,返回字典中的值
dict = {'id': 101, 'name': 'tom', 'age': 18}
print(dict.setdefault('id',100))
101
不存在,在字典中添加相应的键值对,并返回对应值
dict = {'id': 101, 'name': 'tom', 'age': 18}
print(dict.setdefault('work','python'))
python
查
字典值访问
1.通过字典的key访问value
2.dict.get()访问value
语法: dict.get(key,[default])
不确定字典中是否存在某个键而又想对其进行操作,比如获取值—get方法
当key不存在的时候,没有默认值返回None,有默认值返回默认值
3.遍历
dict.keys()
返回所有的键
dict = {'id': 101, 'name': 'tom', 'age': 18}
for key in dict.keys():
print(key)
id
name
age
dict.values()
返回所有值
dict.items()
返回所有键值对
dict = {'id': 101, 'name': 'tom', 'age': 18}
for key,value in dict.items():
print(key,':',value)
id : 101
name : tom
age : 18
集合(set())
特点:
无序
sr="city"
st=set(sr)
print(st)
>>>{'t', 'y', 'i', 'c'}
不可重复
不可更改:内部元素是可哈希的
集合本身是不可哈希的
用{}括起来的单元素数据集
用途:
-去重(列表转化成集合,自动去重)
-关系测试
集合的创建
st=set
st
set()#空集合
st={}
type(st)
<class'dict'>
增
set.add()
set.update()
删
set.pop()#删除排序最小的元素
srt.discard()#移除元素,若元素不存在不会报错
set.remove()#移除元素,若不存在,会报错
del set
改
不可改
查
不可查
遍历