Python 字典相关操作

#1.1字典值的访问
print("1.1字典值的访问")
dic = {"name1": 1, 2:"agent"}  #两对键值
#方法一
print("键name1对应的值", dic["name1"])
print("键2对应的值", dic[2])
#方法二
    #setdefault(key)当字典中有该键值对时会直接访问该键对应的值
    #当字典中不存在该键值对时会将其添加入字典中
print("键name1对应的值", dic.setdefault("name1"))
print("键2对应的值", dic.setdefault(2))
#方法三 假如我们不确定字典中是否存在某个键而又想获取其值时用get()  有对应key的返回对应的value
print("键name1对应的值", dic.get("name1"))
print("键2对应的值", dic.get(2))

#1.2测量键值对的个数
print("1.2测量键值对的个数")
print("键值对的个数", len(dic))

#1.3返回所有key的列表
print("1.3返回所有key的列表")
print("所有的键", dic.keys())

#1.4返回所有value的列表
print("1.4返回所有value的列表")
print("所有的值", dic.values())

#1.5返回一个键值对的列表
print("1.5返回一个键值对的列表")
print("所有的键值对", dic.items())

#1.6遍历所有的key
print("1.6遍历所有的key")
for i in dic.keys():
    print("键", i)

#1.7遍历所有的value
print("1.7遍历所有的value")
for i in dic.values():
    print("值", i)

#1.8遍历所有的键值对
print("1.8遍历所有的键值对")
for i in dic.items():
    print("键值对", i)
#1.9删除某个键值对
print("1.9删除某个键值对")
del dic["name1"]
print(dic)
del dic[2]
print(dic)
#1.10新增键值对
print("1.10新增键值对")
dic.setdefault("name2", []).append(99)
print(dic)
dic["name3"] = 88
print(dic)
dic.setdefault("name2", []).append(66)
print(dic)
#1.11删除整个字典
del dic
# print(dic) #运行该行会报错:dic字典不存在

#2.1 list作为dic的值 一键多值  值可以重复
print("2.1 list作为dic的值 一键多值  值可以重复")
dic = {}
key = "name1"
value1 = 1
value2 = 1
value3 = 2
dic.setdefault(key, []).append(value1)
dic.setdefault(key, []).append(value2)
dic.setdefault(key, []).append(value3)
print(dic)
print(dic[key])
#2.2 删除某个键对应的某个值  会留下一个空列表
print("2.2 删除某个键对应的某个值  会留下一个空列表")
dic[key].remove(value1)
print(dic)
dic[key].remove(value2)
print(dic)
dic[key].remove(value3)
print(dic)

#3.1 以字典作为dic的值  实现一键多值  值不允许重复
print("3.1 以字典作为dic的值  实现一键多值  值不允许重复")
#定义一个类
class k(object):
    def __init__(self, k_1 , k_2):
        self.k_1 = k_1
        self.k_2 = k_2
k_a = k(1, 2)
k_b = k(3, 4)
k_c = k(5, 6)
dic = {}
dic.setdefault("agent1", {})[1] = k_a
print(dic)
print(dic["agent1"][1].k_1)
print(dic["agent1"][1].k_2)
dic.setdefault("agent1", {})[1] = k_b  #可见如果再存入同一个键,则会顶替之前存在的键值对
print(dic)
print(dic["agent1"][1].k_1)
print(dic["agent1"][1].k_2)
dic.setdefault("agent1", {})[2] = k_c #实现一键多值
print(dic)
print(dic["agent1"][2].k_1)
print(dic["agent1"][2].k_2)
#3.2 删除某个键对应的某个键值对
print("3.2 删除某个键对应的某个键值对")
del dic["agent1"][1]
print(dic)
print(dic["agent1"][2].k_1)
print(dic["agent1"][2].k_2)
del dic["agent1"][2]   #已全部删除
print(dic)

#4.1 以set作为字典的值 值不允许重复
print("4.1 以set作为字典的值 值不允许重复")
class k(object):
    def __init__(self, k_1 , k_2):
        self.k_1 = k_1
        self.k_2 = k_2
k_a = k(1, 2)
k_b = k(1, 2)
k_c = k(5, 6)
dic = {}
dic.setdefault("agent1", set()).add(k_a)
print(dic)
dic.setdefault("agent1", set()).add(k_a)
print(dic)
dic.setdefault("agent1", set()).add(k_b)
print(dic)
dic.setdefault("agent1", set()).add(k_c)
print(dic)
for i in dic.values():
    print(i)
#4.2 删除某个键对应的set中的某个量
print("4.2 删除某个键对应的set中的某个量")
dic["agent1"].remove(k_a)
print(dic)
dic["agent1"].remove(k_b)
print(dic)
dic["agent1"].remove(k_c)
print(dic)

#5 update用法:用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中
print("5 update用法")
D = {'one': 1, 'two': 2}
D.update({'three': 3, 'four': 4}) # 传一个字典
print(D)
D.update(five=5, six=6) # 传关键字
print(D)
D.update([('seven', 7), ('eight', 8)]) # 传一个包含一个或多个元祖的列表
print(D)
D.update({'one': 111, 'two': 222}) # 传一个字典
print(D)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值