python学习(第四节)

字典(键值对)

"键" 可以是任意的不可变数据,不可重复
“值” 可以是任意数据,可重复
注:python中的对象
可变对象:列表、字典、集合
不可变对象:整数、浮点数、字符串、元组

字典创键
伪代码
# 方式1:花括号创键 {}
d = {key1:value1,key2:value2,...}
# 方式2:dict(...)
d = dict(key1=value1,key2=value2,...)
# 方式3:dict([(),(),...])
d = dict([(key1,value1),(key2,value2),...])
# 方式4:zip()创键
keys = [key1,key2,...]
values = [value1,value2,...]
d = dict(zip(keys,values))
# 方式5:fromkeys()方法创建空字典
d = dict.fromkeys([key1,key2,...])
# d为空字典,d:{key1: None, key2: None,...}
字典访问
#----------------伪代码--------------------------#
# 创建字典
d = dict(key1=value1,key2=value2)
# 方式1:“键”访问
value = d[key1] # value = value1
# 方式2:get()方法访问
value = d.get(key1) # value = value1
value = d.get(key3) # value = None
value = d.get(key3,"key3不存在") # value = "key3不存在"
#注:若key1不存在,默认返回None (不存在情况的返回值可通过get()方法第二个参数指定)
#-------------------------------------------------------------------------------------
# 方式3:
# (1)items()方法-列出所有键值对
d.items() # 返回对象dict_items([('key1', 'value1'), ('key2', 'value2')])
# (2)keys()方法-列出所有键
d.keys() # 返回对象dict_keys(['key1', 'key2'])
# (3)values()方法-列出所有值
d.values() # 返回对象dict_values(['value1', 'value2'])
#注:返回对象可用于迭代或转换成其他序列类型
#---------------------------------------------------------------------------------------
# len()函数-获取字典键值对个数
len(d) # 返回 2
# in 判断键是否在字典中
key1 in d # 返回True
元素操作
#--------------------伪代码--------------------------------------#
# 1.添加键值对
d = dict(key1=value1,key2=value2)
d[key3] = value3 # d={key1:value1,key2:value2,key3:value3}
# 注:若键不存在,则添加键值对
#    若键存在,则覆盖原有值
# 2.update()方法-将参数字典添加到调用字典,键重复则覆盖原有值
d = dict(key1=value1,key2=value2)
d1 = dict(key3=value3,key4=value4)
d.update(d1) # d={key1:value1,key2:value2,key3:value3,key4:value4}
# 3.del()函数-删除键值对
d = dict(key1=value1,key2=value2)
del(d[key2]) # d={key1:value1}
# 4.clear()方法-清空列表
d = dict(key1=value1,key2=value2)
d.clear() # d={}
# 5.pop()方法-弹出指定键的值
d = dict(key1=value1,key2=value2)
value = d.pop(key1) # value=value1,d={key2:value2}
# 6.popitem()方法-随机弹出键值对
d = dict(key1=value1,key2=value2)
tuple_d=d.popitem() # tuple_d=(key1,value1),d={key2:value2}
序列解包赋值
#--------------------伪代码-----------------------#
# 1.元组、列表
a,b,c = (1,2,3) # 元组解包赋值
a,b,c = [1,2,3] # 列表解包赋值
# 2.字典
# (1)对-键-解包赋值
d = dict(key1=value1,key2=value2)
k1,k2 = d # 方式1
k1,k2 = d.keys() # 方式2
# (2)对-值-解包赋值
d = dict(key1=value1,key2=value2)
v1,v2 = d.values()
# (3)对-键值对-解包赋值
d = dict(key1=value1,key2=value2)
tup1,tup2 = d.items()
字典实现:哈希散列
集合

元素由键构成,因此元素具有唯一性

#-----------------伪代码----------------------#
# 1.创建
s = {key1,key2,...}
s = set([key1,key2,...]) # 注:该方式可由序列、字典、迭代器创建集合
# 2.add()方法-添加元素
s = set([key1,key2])
s.add(key3) # s={key1,key2,key3}
# 3.remove()方法-删除元素
s = set([key1,key2])
s.remove(key1) # s = {key1}
# 4.操作
# (1)交集
s1 = {key1,key2}
s2 = {key1,key3}
s = s1&s2 # s={key1}
s = s1.intersection(s2) # s={key1}
# (2)并集
s1 = {key1,key2}
s2 = {key1,key3}
s = s1|s2 # s={key1,key2,key3}
s = s1.union(s2) # s={key1,key2,key3}
# (3)差集
s1 = {key1,key2}
s2 = {key1,key3}
s = s1-s2 # s={key2}
s = s1.difference(s2) # s={key2}
# 注:集合不支持下标访问,访问集合元素可将集合转换为元组、列表、或通过迭代访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值