文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python---字典

2023-01-31 04:46

关注

#字典是key-value的数据类型,字典是无序的,没有下标(列表有下标),key必须是唯一的

info = {
    "stu001":"fengxiaoli",
    "stu002":"cx",
    "stu003":"wyc",
    "stu004":"ljh",
}


###-----------------循环字典
for i in info:              #推荐使用
    print(i,info[i])

for k,v in info.items():    #不推荐,因为它是先转化为列表在打印,数据量的时候数据会很慢
    print(k,v)
    
    
###-----------------查询
print("stu001" in info)     #判断key是否在字典中,同py2中 info.has_key("stu001")
print(info.get("stu002"))   #通过key获取value,推荐使用
print(info["stu001"])
print(info)  
    
    
###-----------------修改
info["stu003"] = "fzl"        #有那个key就修改,没有新增
info["stu005"] = "fzl"
print(info)


###-----------------删除
del info                       #删除整个字典
del info["stu005"]
info.pop("stu004")
info.popitem()                 #随机删除一组


###-----------------合并两个字典
b = {
    "stu001":"fxl",
    3:5,
    4:8,
}
info.update(b)      #合并字典info和字典b,有重复的就更新,不重复的就合并
print(info)


###-----------------把字典转成列表
print(info.items())


###-----------------初始化一个字典
c = dict.fromkeys([7,8,9],"test")
print(c)
#输出{8: 'test', 9: 'test', 7: 'test'}

c1 = dict.fromkeys([7,8,9],{1:"feng",2:"cx",3:"fxl"})
print(c1)
#输出{8: {1: 'feng', 2: 'cx', 3: 'fxl'}, 9: {1: 'feng', 2: 'cx', 3: 'fxl'}, 7: {1: 'feng', 2: 'cx', 3: 'fxl'}}

c1[8][2]="xia"      #类似浅copy,二级字典中数据指向同一内存地址,修改一个所有都改变
print(c1)
#输出{8: {1: 'feng', 2: 'xia', 3: 'fxl'}, 9: {1: 'feng', 2: 'xia', 3: 'fxl'}, 7: {1: 'feng', 2: 'xia', 3: 'fxl'}}
   
   

###-----------------多级字典
info2 = {
    "stu001":{"fxl":["性别:男","年龄:21"]},
    "stu002":{"cx":["性别:女","年龄:25"]},
    "stu003":{"fzl":["性别:男","年龄:35"]},
}
info2["stu001"]["fxl"][1] = "年龄:23"            #修改
info2.setdefault("stu004",{"ljh":["性别:女","年龄:40"]})     #增加,如果字典中有这个key就不改变原值,没有就新建
print(info2)

三级菜单练习

# Author:fengxiaoli

Data={
    "重庆":{
        "綦江":{
            "永城":["永城中学","永城小学"],
            "隆盛":["隆盛中学","隆盛小学"],
            "三角":["三角中学","三角小学"],
            "丁山":["丁山中学","丁山小学"],
        },
        "永川":{},
        "江北":{},
        "沙坪坝":{},
    },
    "北京":{},
    "上海":{},
    "天津":{}
}
while True:
    for i in Data:
        print(i)
    choice1=input("1>>>>>")
    if choice1 in Data:
        while True:
            for j in Data[choice1]:
                print(j)
            choice2 = input("2>>>>>")
            if choice2 in Data[choice1]:
                while True:
                    for k in Data[choice1][choice2]:
                        print(k)
                    choice3= input("3>>>>>")
                    if choice3 in Data[choice1][choice2]:
                        while True:
                            for t in Data[choice1][choice2][choice3]:
                                print(t)
                            choice4= input("最后一层,返回按b:")
                            if choice4 == "b":
                                break
                            elif choice4=="q":
                                exit()
                    if choice3 == "b":
                        break
                    elif choice3 == "q":
                        exit()
            if choice2 == "b":
                break
            elif choice2 == "q":
                exit()


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯