day4

字典

定义

字典是除列表以外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

​ 通过使用变量名[‘键’]='值

  1. 如果key不存在,则新建键值对
  2. 如果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

不可改

不可查

遍历


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值