python day05

字典

数据类型分为 可变数据类型 不可变数据类型

​   不可变数据类型(可哈希)元组 int bool str 对str进行的操作指挥形成新的str

   可变数据类型(不可哈希) 列表 list dict set

  dict key 必须是不可变数据类型 可哈希 tuple int bool str

  value: 任意数据类型

  dict 优点: 二分查找去查询 ​ 储存大量的关系型数据

字典的增删改查

复制代码
#最好不好用dict来命名字典
dic = {
    'name': ['1', '233', 'wwww', 'alex'],
    'py9': [{'num':71, 'avg_age': 18}],
    True:1,
    (1,2,3):'wuyiyi',
    '2':'二哥'
}
print(dic)
复制代码

增  改

 

复制代码
#
dic1 = {'age' : 18, 'name' : 'jin', 'sex' : 'male',}
print(dic1)
#如果没有key  就会增加一个key
#如果有key 就会修改key值对应的value
dic1['high'] = 165
print(dic1)
dic1['high'] = 171
print(dic1)

#改 update

dic = {'name':'jin', 'age':18, 'sex':'male'}
dic2 = {'name': 'alex', 'weight':75}
dic2.update(dic)
print(dic2)
#没有就补充之  有就修改之 覆盖添加 更新 
复制代码

setdefault 如果已经有数据 不做任何操作 没有数据 添加数据

dic1.setdefault('height')
print(dic1)
dic1.setdefault('weight',18)
print(dic1)

复制代码
#删  按照索引去删
#pop  有返回值value
#如果
print(dic1.pop('age'))
print(dic1)
#print(dic1.pop('age'))
#如果直接用pop来删除没有的键  会报错
#用以下方法就可以避免报错  pop这设置返回值
print(dic1.pop('age','没有此键'))

#删除  popitem 随机删除(3.5)
#3.6  删除最后一个键值对
#返回删除的键值对 是元组

print(dic1.popitem())
print(dic1)

#删除不存在的键值  会报错  尽量不用
#可以删除整个字典
del dic1['name1']  
print(dic1)

#dic1.clear()
dic1.clear()  #清空字典
print(dic1)
View Code
复制代码

复制代码
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
#把dic1.key()当成列表就行
print(dic1.keys(), type(dic1.keys())) #key
print(dic1.values())    #value
print(dic1.items())    #元组  里面是键值!!!!

for i in dic1: #打印  键!!!!!
    print(i)
for i in dic1.keys():  #和上一个相同,,,,,,,,,IL6HH4                                
    print(i)
for i in dic1.values():
    print(i)
复制代码

字典的嵌套

复制代码
dic = {
    'name':['alex','wusir','taibai'],
    'py9':{
        'time':'1213',
        'tuition_fee':19800,
        'address':'CBD',
    },
    'age':21
}

#upadte 'age'  
dic['age'] = 56
print(dic)
#添加元素
dic['name'].append('ritian')
print(dic)

#upper wusir
#this is useful 这样才行
#单纯dic['name'][1].upper()  对列表没有影响
dic['name'][1]=dic['name'][1].upper()
print(dic)

dic['py9']['female'] = 6
dic['py9'].setdefault('female', 19)
#直接赋值和setdefault效果一样  但是  直接赋值后setdefault就无效了
print(dic)
View Code
复制代码
复制代码
#把所有的字母换成空格
info = input('>>>')
#when meet alpha  trun to blank
for i in info:
    if i.isalpha():
        #info.replace(i," ")改变的不是info本身
        #所以改变后还是要进行赋值
        info = info.replace(i," ")
info_list = info.split()
print(len(info_list))
复制代码

分别赋值

复制代码
a,b=1,2
print(a,b)

#一行代码转换a,b的值 (名称空间有些没听懂)
#原理是什么呢
a,b=b,a
print(a,b)

a,b=[1,2]
print(a,b)

#一一对应
a,b=[1,2],[2,3]

#这样可以分别打印key value 不加括号
for k,v in dic1.items():
    print(k, v)

#打印出对应的值
print(dic1['name'])

#这样会报错
v1=dic1['name1']
print(v1)
#这样不会报错
print(dic1.get('name1'))
print(dic1.get('name1','Nothing!!!'))
View Code
复制代码

 

posted @   TATIT  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示