Python基础---字典

1.字典定义

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

类型相关数据类型s是否哈希
可变类型list 、dict 、set不可哈希
不可变类型str 、tuple(元组)、 bool 、int可哈希

字典(dict)是一种key value 无序的数据类型:
key 必须是不可变得数据类型 一般字符即可
value 可以任何种数据类型

2.字典相关操作

  • 取值

    #取值有dict['key']、dict.get("key"),dict.setdault('key')三中方法
    
    dict={
        'name':'xiaojing',
        'sex':'boy',
        'hobby': ['girl', 'movie', 'cycling'],
    }
    print(dict['hobby'])# ['girl', 'movie', 'cycling']
    print(dict['hobby'][0])#girl
    print(dict['name'])#xiaojing
    print(dict['name1'])#不存在该key会报错
    name=dict.get("name1",'false')#默认找不到会返回None,可以修改返回值,此处改为false
    print(name) #false
    
    
    dict={
        'name':'xiaojing',
    }
    print(dict.setdefault('name','LaoWang'))  #xiaojing
    print(dict.setdefault('name1','LaoWang'))  #LaoWang
    print(dict) #{'name': 'xiaojing', 'name1': 'LaoWang'}
    #setdefault获取不存在的键值时会往字典添加改键
    
  • 增加

    #增加有直接键值对增加、dict.setdefault(key,value)
    
    dict={
        'name':'xiaojing',
        'sex':'boy',
        'email':'xx@qq.com'
    }
    
    dict['telephone']='15099818848' #没有该键则创建该键值对
    dict['sex']='girl'  #已存在该键值对则覆盖
    print(dict)#{'name': 'xiaojing', 'sex': 'girl', 'email': 'xx@qq.com', 'telephone': '15099818848'}
    
    dict.setdefault('email','33@qq.com')#setdefault如果key已经存在则不修改该值
    print(dict['email'])#xx@qq.com
    
  • 删除

    dict={
        'name':'xiaojing',
        'sex':'boy',
        'email':'xx@qq.com'
    }
    ret=dict.pop('sex1','false')
    if ret=='false':
        print('没有此键,返回值为:'+ret)
    else:print(ret)
        
    #pop(key,None) 删除成功则返回value,失败则返回None,None可以省略也可以修改,如上面改为'false'
    
  • 更新

    #更新cookie时用到
    
    dict={
        'name':'xiaojing',
        'sex':'boy'
    }
    dict1={
        'sex':'girl',
        'email':'xx@qq.com'
    }
    dict.update(dict1)
    print(dict)#{'name': 'xiaojing', 'sex': 'girl', 'email': 'xx@qq.com'}
    
    #dict1.update(dict2)用dict2去更新dict1,存在相同key值时则更新value值,不存在key时则创建
    
  • 查找

    #dict.keys()     dict.values()     dict.items()   
    
    dict={
        'name':'xiaojing',
        'sex':'boy'
    }
    
    print(dict.keys())#dict_keys(['name', 'sex']) 返回列表对象
    print(dict.values())#dict_values(['xiaojing', 'boy']) 返回列表对象
    print(dict.items())#dict_items([('name', 'xiaojing'), ('sex', 'boy')]) 返回以元组为元素的列表对象
    
    for key in dict.keys():
        print(key)#name  sex
    for key,value in dict.items():
        print(key,value)  #name xiaojing      sex boy
    
  • 字典嵌套

    dict={
        'studentID':'201641402319',
        'msg':{
            'name':'xiao jing',
            'age':23,
            'sex':'boy'
        }
    }
    
    name=dict.get('msg').get('name').title()  #先找到内容,再进行操作
    print(name)#Xiao Jing
    
  • 分别赋值

    a=1
    b=2
    a,b=b,a   #一行代码同时交换a b的值
    print(a,b)#2 1
    
    a,b=['c','d'],['e','f']
    print(a,b)  #['c', 'd'] ['e', 'f']
    a,b=(1,2)   #分别赋值,自动识别右边最小元素,然后分别赋值
    print(a,b)#1 2
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 Python 图书管理系统的增删改查操作示例,使用了字典作为数据存储方式: ```python # 初始化图书列表 books = [{'id': '001', 'title': 'Python 编程基础', 'author': '张三', 'price': 36.5}, {'id': '002', 'title': 'Python 编程进阶', 'author': '李四', 'price': 45.0}, {'id': '003', 'title': 'Python 数据分析', 'author': '王五', 'price': 55.0}, {'id': '004', 'title': 'Python 机器学习', 'author': '赵六', 'price': 68.0}] # 定义函数:查询图书信息 def query_book(): book_id = input('请输入图书编号:') for book in books: if book['id'] == book_id: print('图书编号:', book['id']) print('图书名称:', book['title']) print('图书作者:', book['author']) print('图书价格:', book['price']) return print('未找到该图书!') # 定义函数:添加图书信息 def add_book(): book = {} book['id'] = input('请输入图书编号:') book['title'] = input('请输入图书名称:') book['author'] = input('请输入图书作者:') book['price'] = float(input('请输入图书价格:')) books.append(book) print('添加图书成功!') # 定义函数:修改图书信息 def update_book(): book_id = input('请输入要修改的图书编号:') for book in books: if book['id'] == book_id: book['title'] = input('请输入新的图书名称:') book['author'] = input('请输入新的图书作者:') book['price'] = float(input('请输入新的图书价格:')) print('修改图书成功!') return print('未找到该图书!') # 定义函数:删除图书信息 def delete_book(): book_id = input('请输入要删除的图书编号:') for book in books: if book['id'] == book_id: books.remove(book) print('删除图书成功!') return print('未找到该图书!') # 主函数 while True: print('欢迎使用图书管理系统') print('1. 查询图书信息') print('2. 添加图书信息') print('3. 修改图书信息') print('4. 删除图书信息') print('0. 退出系统') choice = input('请输入操作编号:') if choice == '1': query_book() elif choice == '2': add_book() elif choice == '3': update_book() elif choice == '4': delete_book() elif choice == '0': break else: print('输入有误,请重新输入!') ``` 该图书管理系统使用了一个字典列表 `books` 来存储图书信息,包含图书编号、图书名称、图书作者和图书价格四个字段。其中,查询、添加、修改和删除图书信息分别对应了 `query_book()`、`add_book()`、`update_book()` 和 `delete_book()` 四个函数,根据用户输入的操作编号进行调用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值