Python基础语法【第四篇】——字典和集合介绍

Python基础语法系列导航

1.第一篇——开发环境、变量、数据类型、运算符介绍
2.第二篇——流程控制、循环、字符串介绍
3.第三篇——列表和元组介绍
4.第四篇——字典和集合介绍
5.第五篇——部分数据类型公共方法、生成式介绍
6.第六篇——函数介绍
7.第七篇——文件操作介绍



前言

Python基础语法笔记,记录一下学习过程


提示:以下是本篇文章正文内容,下面案例可供参考

09.字典和集合

总结:字典和集合都是可变数据类型

1.字典

1.字典的应用场景
  • 字典,字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。


2.字典的语法
  • 字典特点:

    • 符号为{ }大括号
    • 数据为键值对形式出现
    • 各个键值对之间用逗号隔开
    # 有数据字典
    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    # 空字典
    dict2 = {}
    
    dict3 = dict()	# dict()函数生成
    

    注意:

    1. 一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。
    2. 字典中的key值必须是不可变类型


3.字典常用操作方法
3.1增加
  • 写法:字典序列[key] = 值

    注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    dict1['name'] = 'Rose'
    # 结果:{'name': 'Rose', 'age': 20, 'gender': '男'}
    print(dict1)
    
    dict1['id'] = 110
    
    # {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
    print(dict1)
    

    注意:字典为可变数据类型。

3.2删除
  • del() / del:删除字典或删除字典中指定键值对。

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    del dict1['gender']
    # 结果:{'name': 'Tom', 'age': 20}
    print(dict1)
    
    del dict1 等同于写法  del(dict1)
    # 结果:NameError: name 'dict1' is not defined
    print(dict1)
    
  • clear():清空字典

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    dict1.clear()
    # 结果:{}
    print(dict1)  
    
3.3修改
  • 写法:字典序列[key] = 值

    注意:如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对。

3.4查找
3.4.1 key值查找
  • 举例:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    print(dict1['name'])  # Tom
    print(dict1['id'])  # 报错
    

    注意:如果当前查找的key存在,则返回对应的值;否则则报错。

3.4.2 get()
  • 语法:

    字典序列.get(key, 默认值)
    

    注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。

  • 举例:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    print(dict1.get('name'))  # Tom
    print(dict1.get('id', 110))  # 110
    print(dict1.get('id'))  # None
    
3.4.3 keys()
  • 作用:获取字典的键列表

  • 语法:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    # dict_keys(['name', 'age', 'gender'])
    print(dict1.keys()) 
    
3.4.4 values()
  • 作用:获取字典的值列表

  • 语法:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    # dict_values(['Tom', 20, '男'])
    print(dict1.values())  
    
3.4.5 items()
  • 作用:获取字典的键值对列表,其中每对由元组存储

  • 语法:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])
    print(dict1.items())  
    


4.字典循环遍历
4.1遍历字典的key
  • 作用:遍历打印字典的键,没有列表包含!

  • 举例:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    for key in dict1.keys():
        print(key)
    
4.2遍历字典的value
  • 作用:遍历打印字典的值,没有列表包含!

  • 举例:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    for value in dict1.values():
        print(value)
    
4.3遍历字典的元素
  • 作用:遍历打印字典的每对键值对,没有列表包含!

  • 举例:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    for item in dict1.items():
        print(item)
    
4.4遍历字典的键值对
  • 作用:遍历打印字典的每对键值对,最常用的

  • 举例:

    dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
    
    """
    name = Tom
    age = 20
    gender = 男
    """
    for key, value in dict1.items():
        print(f'{key} = {value}')
    


5.总结
  • 定义字典
dict1 = {'name': 'Python', 'age': 30}

dict2 = {}

dict3 = dict()
  • 常见操作

    • 增/改

      字典序列[key] =
    • 查找

      • 字典序列[key]
      • keys()
      • values()
      • items()




2.集合

1.集合定义
  • 创建集合使用{}set(), 但是如果要创建空集合只能使用set(),因为{}用来创建空字典

    s1 = {10, 20, 30, 40, 50}
    # {40, 10, 50, 20, 30}
    print(s1)
    
    s2 = {10, 30, 20, 10, 30, 40, 30, 50}
    # {40, 10, 50, 20, 30}
    print(s2)
    
    s3 = set('abcdefg')
    # {'c', 'g', 'b', 'f', 'a', 'd', 'e'}
    print(s3)
    
    s4 = set()
    print(type(s4))  # set
    
    s5 = {}
    print(type(s5))  # dict
    

    特点:

    1. 集合可以去掉重复数据
    2. 集合数据是无序的,故不支持下标
    3. set()函数可以创建一个无序不重复的元素集,这个函数至多可以传一个参数。


2.集合常用操作
2.1增加数据
  • add():追加的数据不能是列表,将添加的元素作为整体。

    • 举例:

      s1 = {10, 20}
      s1.add(100)
      s1.add(10)
      print(s1)  # {100, 10, 20}
      

      因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。用于清洗数据中的去重

  • update():追加的数据要求是序列,可迭代的对象,对其遍历后,依次添加到集合

    • 语法:

      集合序列.update(序列数据)
      
    • 举例:

      s1 = {10, 20}
      # s1.update(100)  # 报错, 因其不是序列,而是数字
      s1.update([100, 200])
      s1.update('abc')
      
      # {'a', 100, 200, 10, 'b', 'c', 20}
      print(s1)
      

      注意:序列,指的是一块可存放多个值的连续内存空间

      1. 在Python中,序列类型包括字符串、列表、元组、集合和字典
      2. 字典和集合比较特殊,它们都是无序的,没有下标,因此无法支持通过下标的索引、切片、相加和相乘操作。
2.2删除数据
  • remove():删除集合中的指定数据,如果数据不存在则报错。

    • 语法:

      集合序列.remove(数据)
      
    • 举例:

      s1 = {10, 20}
      
      s1.remove(10)
      print(s1)
      
      s1.remove(10)  # 报错, 因为数据已经不存在了
      print(s1)
      
  • discard():删除集合中的指定数据,如果数据不存在也不会报错。

    • 语法:

      集合序列.discard(数据)
      
    • 举例:

      s1 = {10, 20}
      
      s1.discard(10)
      print(s1)
      
      s1.discard(10)
      print(s1)
      
  • pop():随机删除集合中的某个数据,并返回这个数据。

    • 语法:

      集合序列.pop()
      
    • 举例:

      s1 = {10, 20, 30, 40, 50}
      
      del_num = s1.pop()
      print(del_num)
      print(s1)
      

      注意:集合这里的pop函数是随机删除,而列表中的pop默认是删除最后一个

2.3查找数据
  • in:判断数据在集合序列

  • not in:判断数据不在集合序列

    s1 = {10, 20, 30, 40, 50}
    
    print(10 in s1) # True
    print(10 not in s1) # False
    


3.总结
  • 创建集合

    • 有数据集合
    s1 = {数据1, 数据2, ...}
    
    • 无数据集合
    s1 = set()
    
  • 常见操作

    • 增加数据
      • add()
      • update()
    • 删除数据
      • remove()
      • discard()



总结

有误之处,欢迎指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值