• Python3 元组、列表、字典、集合小结


    前言

    本文主要对Python中的元组、列表、字典、集合进行小结,主要内容包括知识点回顾、异同点、使用场景。

    一、知识点回顾

    Python 中的元组、列表、字典、集合都是用来存储多个数据元素的容器类型。

    1、列表(List)

    列表是可变的,可以通过索引访问和修改元素,以逗号分隔值用方括号 [] 括起来实现。列表中的元素可以是不同数据类型的,可以通过追加、插入、删除等操作进行修改。常见的操作如下:

    my_list = [1, 'hello', True]
    
    my_list[0] = 2 #索引修改
    my_list.append('world')   #追加
    my_list.insert(1, 'goodbye')   #在制定位置之前插入
    my_list.remove('hello')   #删除制定值的元素,也可以是指定下标
    print(my_list)
    

    输出结果:

    [2, 'goodbye', True, 'world']
    

    2、 元组(Tuple)

    元组是不可变的,可以通过索引访问元素,其值用逗号分隔值用小括号 () 实现。元组元素不能更改,因此在创建后不能添加、删除或修改。常见的操作如下:

    my_tuple = (1, 'hello', True)
    
    print(my_tuple[1])   #索引
    print(my_tuple[0:2])   #切片
    

    输出结果:

    hello
    (1, 'hello')
    

    3、 字典(Dictionary)

    字典是一个使用键-值对存储的可变数据类型,用大括号 {} 括起来,键值对之间用冒号 : 分隔,键值对之间用逗号分隔。常见的操作如下:

    my_dict = {'a': 1, 'b': 2, 'c': 3}
    
    print(my_dict['b'])   #通过键来访问值
    my_dict['a'] = 9    #通过键来修改值
    print(my_dict)
    

    输出结果:

    2
    {'a': 9, 'b': 2, 'c': 3}
    

    4.、集合(Set)

    集合是用于保存一组唯一元素的容器类型,用大括号 {} 或 set() 构造,不支持索引操作。集合中的元素不重复,可以进行交、并、差等集合操作。常见的操作如下:

    my_set1 = {1, 2, 3}
    my_set2 = {3, 4, 5}
    
    print(my_set1 & my_set2)   #求交集
    print(my_set1 | my_set2)   #求并集
    print(my_set1 - my_set2)   #求差集
    print(my_set1 ^ my_set2)   #求对称差集
    

    输出结果:

    {3}
    {1, 2, 3, 4, 5}
    {1, 2}
    {1, 2, 4, 5}
    

    二、异同点

    1、异构性

    元组、列表、字典都可以包含不同类型的元素,比如整数、浮点数、字符串等。集合要求元素类型必须是不可变的,否则会引发 TypeError 错误,如:

    my_list = [1, 1.5, 'hello', (1, 2, 3), [4, 5, 6]]
    my_tuple = (1, 1.5, 'hello', (1, 2, 3), [4, 5, 6])
    my_dict = {'a': 1, 'b': 1.5, 'c': 'hello','d':(1, 2, 3),'e':[4, 5, 6]}  
    my_set = {1, 1.5, 'hello', (1, 2, 3), frozenset([4, 5, 6]) }
    # my_set = {1, 1.5, 'hello', (1, 2, 3), [4, 5, 6] }   #会报错,必须要用frozenset()函数将数据类型转换为不可变数据类型
    
    print(my_list)
    print(my_tuple)
    print(my_dict)
    print(my_set)
    

    输出结果:

    [1, 1.5, 'hello', (1, 2, 3), [4, 5, 6]]
    (1, 1.5, 'hello', (1, 2, 3), [4, 5, 6])
    {'a': 1, 'b': 1.5, 'c': 'hello', 'd': (1, 2, 3), 'e': [4, 5, 6]}
    {1, 1.5, (1, 2, 3), 'hello', frozenset({4, 5, 6})}
    

    集合内部使用哈希表来实现,每一个不同的数据元素都有一个唯一的哈希值,通过哈希值来对集合元素进行快速的查找和操作。由于哈希表的实现方式是通过键(key)来实现的,因此要求集合中的元素必须是可散列的,即每个元素必须有一个唯一的哈希值,否则将会引发 TypeError 错误。

    2、可变性

    可变性是指容器中的元素是否可以被修改,比如增加、修改、删除等。元组是不可变数据类型,列表、字典、集合都是可变数据类型,如:

    my_list = [1, 2, 3]
    my_tuple = (1, 2, 3)
    my_dict = {'a': 1, 'b': 2, 'c': 2}
    my_set = {1, 2, 3 }
    
    my_list.append(4)
    my_dict['d'] = 4
    my_set.add(4)
    #my_tuple 元组中的数据是不可变的
    
    print(my_list)
    print(my_dict)
    print(my_set)
    

    输出结果:

    [1, 2, 3, 4]
    {'a': 1, 'b': 2, 'c': 2, 'd': 4}
    {1, 2, 3, 4}
    

    3、有序性

    元组、列表都是有序的,可以通过索引下标来访问元素,字典在python3.7版本以上的输出顺序通常是稳定,但是我们不能认为它是有序的,它不可以通过下标来索引,但是可以通过键来访问或修改,集合是无序的数据类型,不支持索引,如:

    my_list = [1, 2, 3]
    my_tuple = (1, 2, 3)
    my_dict = {'a': 1, 'b': 2, 'c': 2}
    my_set = {1, 2, 3 }
    
    print(my_list[1])
    print(my_tuple[1])
    print(my_dict['b'])
    #print(my_set[1])   #会引发 TypeError 错误
    

    输出结果:

    2
    2
    2
    

    4、可迭代性

    元组、列表、字典、集合都是支持遍历的。

    my_list = [1, 2, 3]
    my_tuple = (1, 2, 3)
    my_dict = {'a': 1, 'b': 2, 'c': 2}
    my_set = {1, 2, 3 }
    
    print('my_list遍历输出:', end='')
    for i in my_list:
    print(i ,' ' , end='')
    print()
    
    print('my_tuple遍历输出:', end='')
    for i in my_tuple:
    print(i ,' ' , end='')
    print()
    
    print('my_dict遍历输出:', end='')
    for i in my_tuple:
    print(i ,' ' , end='')
    print()
    
    print('my_set遍历输出:', end='')
    for i in my_tuple:
    print(i ,' ' , end='')
    print()
    

    输出结果:

    my_list遍历输出:1  2  3  
    my_tuple遍历输出:1  2  3  
    my_dict遍历输出:1  2  3  
    my_set遍历输出:1  2  3  
    

    三、使用场景

    1、列表(List)

    列表是可变、异构、有序的多元素类型容器,列表在Python中使用非常广泛,常见的使用场景包括:
    1)存储有序序列数据,如待处理的任务列表、音乐播放列表等;
    2) 作为其他数据结构的底层实现,如队列、堆栈等;
    3)存储一组同类型的数据,如学生的成绩列表、历史行情数据列表等。

    2、元组(Tuple)

    元组是不可变的,因此常见的场景包括:
    1)存储一组常量数据或常量配置项;
    2) 作为字典的键;
    3)作为函数的参数和返回值。

    3、字典(Dictionary)

    字典是可变、异构的多元素类型容器,字典在Python中也是非常常用的数据结构,常见的使用场景包括:
    1) 存储关联关系数据,如学生的成绩记录、词典等;
    2)存储对象的属性和属性值,如JSON、YAML等数据格式;
    3)作为配置文件的存储格式。

    4、集合(Set)

    集合是用于存储一组唯一元素的数据结构,因此常见的使用场景包括:
    1)去除重复元素,如活动报名时的重复报名检查;
    2)求两个列表或数据之间的交、并、差等操作;
    3)存储不重复的数据,如爬虫任务队列中URL的去重等。

  • 相关阅读:
    Java开发扫雷游戏项目,JFram类的使用
    卧槽,Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。
    C++ STL->list模拟实现
    【HTML】HTML基础4(超链接标签)
    springboot与flowable(2):流程部署
    LeetCode_二分搜索_中等_2594.修车的最少时间
    [附源码]计算机毕业设计JAVA影院售票系统
    Transformer模型 | 用于目标检测的视觉Transformers训练策略
    bp神经网络的主要功能,神经网络和bp神经网络
    使用ElementUI完成登入注册的跨域请求提高开发效率
  • 原文地址:https://blog.csdn.net/weixin_41241810/article/details/139332554