• 自动秒收录
  • 软件:1973
  • 资讯:57811|
  • 收录网站:279851|

IT精英团

简要描述Python中常见的数据结构

简要描述Python中常见的数据结构

浏览次数:
评论次数:
编辑: 阳煦
信息来源: ITPUB
更新日期: 2021-06-04 16:31:16
摘要

Python中常见的数据结构有列表(list)、元组(tuple)、集合(set)、字典(dict)等,这些数据结构表示了自身在Python中的存在形式,在Python中可以输入type(对象)查看数据类型。列表(1)创建列表列表是Python内置的一种数据类型,它是一种有序的数据集合,是用于存储一" />

  • 正文开始
  • 相关阅读
  • 推荐作品

Python中常见的数据结构包括列表、元组、集合、dict等。这些数据结构在Python中表示它们现有的形式,可以输入type (object)来查看Python中的数据类型。

1列表

(1)创建列表

List是Python内置的数据类型,是有序的数据集合,是存储一系列元素的容器。列表用[]表示,列表中的每个元素可以相同也可以不同。

In [1]: list1=['wellcom ',' to ',' the ',' sjwjyais 1688 ']In[2]: list 1 out[2]:[' well com ',' to ',' sjyais 1688 ']In[3]: list 2=[' well com ',' to ',' the ',' sjwjyais 1688 ',6,6]In[4]: list 2 out[4]3366

在[5] :列表中(['肖','肖',' wa ',' ju ',' Ji ',666]出[5] : ['肖','肖',' wa ',' ju ',' Ji ',)

在[7]:[' welcom ',' to ',' te'] ['xiao ',' xiao ',' ji ',' 666']出[7]:[' welcom ',' to ',' te ',' xiao ',' xiao ',' ji ',' 666 '](2)列表的方法

Python中的列表对象内置了一些方法。这里主要介绍常用的追加方法和扩展方法。

append方法是指在现有列表的末尾添加一个元素,这在Python循环控制语句中是常用的。具体例子如下:

In [8]: list2=['a ',' B ',' C ']In[9]: list 2 . append(' D ')In[10]: list 2 out[10]:[' A ',' B ',' C ',' d']In[11]:list3=['e ',[12]: list 2 list 3 out[12]:[' A ',' B ',' C ',' D ',' E ',' F '

  • In [11]: list2 = [,1,2]
    In [12]: list2.extend([3,4,5])
    In [13]: list2Out[13]: [0, 1, 2, 3, 4, 5]
    2元组


    元组与列表类似,区别在于列表中的元素可以修改,而元组中的元素只能读取,不可更改。


    (1)创建元组

    创建元组的代码示例如下:

    In [14]: tuple1=1,2,3
    In [15]: tuple2="sjwjyaisf1688","xiaoxiaowajueji666"
    In [16]: tuple3=(1,2,3,4)
    In [17]: tuple4=()
    In [18]: tuple5=(1,)
    In [19]: print(tuple1,tuple2,tuple3,tuple4,tuple5)(1, 2, 3) ('sjwjyaisf1688', 'xiaoxiaowajueji666') (1, 2, 3, 4) () (1,)

    从上面的结果我们可以简单地总结出创建元组的几个要点:

    • 逗号分隔元组中的值,元组自动创建完成;

    • 元组大多数时候是被括号包围起来的;

    • 可以创建一个空元组,空元组外层只有一对括号;

    • 只含一个值的元组,必须在元组中加个逗号(,)。

    与列表类似,元组也支持加法操作,即将两个或多个元组合并为一个元组。

    In [20]: (1,2,3)+(4,5,6)Out[20]: (1, 2, 3, 4, 5, 6)

    (2)元组赋值

    需要注意的是,列表可以进行赋值操作,而元组则不可进行赋值操作。具体示例如下:

    In [21]: list2[1]='a'

    In [22]: list2Out[22]: [0, 'a', 2, 3, 4, 5]

    In [23]: tuple1[1] = 'a'---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-23-8b1c599ad6fe> in <module>()----> 1 tuple1[1] = 'a'

    TypeError: 'tuple' object does not support item assignment

    可以看到,对列表进行赋值操作可以顺利完成,但试图对元组进行赋值操作则会报错,这也体现了元组中的元素不可更改的特点。


    3集合

    在Python中,集合是一种特殊的数据结构,集合中的元素不能重复。可以通过列表、字典或字符串等数据结构来创建集合,也可以通过“{}”符号进行创建。在实际应用中,集合主要有两个功能,一是进行集合操作,二是消除重复元素。

    In [24]: drink = {'water','milk','lemonade','beer','sprite'}
    In [25]: drinkOut[25]: {'beer', 'lemonade', 'milk', 'sprite', 'water'}
    In[26]:drink = set(['water','milk','lemonade','beer','sprite','milk'])
    In [27]: drinkOut[27]: {'beer', 'lemonade', 'milk', 'sprite', 'water'}另外,Python支持数学上的集合运算,包括差集、交集、并集等,假设有两个集合A、B:In [28]: A = {1,2,3,4,5,6}
    In [29]: B = {3,4,5}

    下面分别举例说明。


    1)求集合A与集合B的差集,即集合A的元素去除集合A、B共有部分的元素:

    In [30]: A-BOut[30]: {1, 2, 6}

    2)求集合A与集合B的并集,即集合A与集合B的全部唯一元素(这里其实就是集合A中的所有元素):

    In [31]: A | BOut[31]: {1, 2, 3, 4, 5, 6}

    3)求集合A与集合B的交集,即集合A与集合B的共有元素:

    In [32]: A & BOut[32]: {3, 4, 5}
    4
    字典

    字典与前面介绍的几种数据结构都不太相同,它是使用键–值(key-value)对的方式来进行存储的,具有方便快速查找的优点。与集合类似,字典也是使用符号“{}”括起来的,但其中的每个键–值对之间用冒号“:”进行对应。

    In[33]:dict1 = {'xiaoming':24,'xiaofang':28,'zhangsan':21,'wangwu':27}
    In [34]: dict1Out[34]: {'wangwu': 27, 'xiaofang': 28, 'xiaoming': 24, 'zhangsan': 21}字典本身是无序的,但可以分别通过keys和values方法获取字典中的键和值。In [35]: dict1.keys()Out[35]: dict_keys(['xiaoming', 'xiaofang', 'zhangsan', 'wangwu'])
    In [36]: dict1.values()Out[36]: dict_values([24, 28, 21, 27])

    另外,字典还支持通过键来访问其对应的值:

    In [37]: dict1['xiaoming']Out[37]: 24

    需要注意的是,在定义字典时,键不能重复,否则重复的键值会默认替换原来的键值。

    In[38]:dict2={'xiaoming':24,'xiaofang':28,'zhangsan':21,'wangwu':27,'xiaoming':25}
    In [39]: dict2Out[39]: {'wangwu': 27, 'xiaofang': 28, 'xiaoming': 25, 'zhangsan': 21}

    文章来源于数仓宝贝库 ,作者杨游云  

    本文摘编于《Python广告数据挖掘与分析实战》,经出版方授权发布。


    欢迎各位小伙伴加入我们的技术交流微信群,资料分享~技术讨论~还有不定期精彩直播等福利活动等着你~ 


     

    标签:列表 元素 字典
    RAC环境下如何修改监听端口
    « 上一篇 2021-06-04
    互联网应用中的 git 工程分支使用策略
    下一篇 » 2021-06-04
    • 如何在Ubuntu中保留文件系统并备份当前开发板镜像
      0阅读 0条评论 个赞
      在Ubuntu保留文件系统或者说备份当前开发板镜像的需求在不断增加。比如Ubuntu文件系统需要安装库文件的话直接使用apt-get工具就可以下载,但由于需要下载的核心板较多,比较费时间,这时需要将安……
    • 国产核心板全志T507助力消防系统升级
      0阅读 0条评论 个赞
      9月16日下午,位于湖南长沙市区内的中国电信大楼发生火灾,建筑高度218米,现场浓烟滚滚,数十层楼体燃烧剧烈。消防救援人员赶到现场后很快将火势控制住,目前大楼火势已被扑灭,所幸未发现人员伤亡。湖南电信……
    • 教大家如何处理Spring Boot易流中的用户和群体!
      0阅读 0条评论 个赞
      1.准备工作2.用户操作2.1添加用户2.2修改用户2.3删除用户2.4查询用户3.组操作3.1添加组3.2修改组3.3删除组3.4查询组4.查看表详情虽然说我们在实际开发中,……
    • 从PG15开始WAL压缩优化
      0阅读 0条评论 个赞
      PG15传闻中的超级令人激动的功能大多数跳票了,年初我也写过一个关于PG15新功能跳票的文章。PG15BETA已经发出几个月了,似乎PG15里令人激动人心的功能不多,不过从长长的新功能列表里,……
    • 深入了解美团叶子发射器开源方案
      0阅读 0条评论 个赞
      大家好,我是树哥。之前我们有聊过「如何设计一个分布式ID发号器」,其中有讲过4种解决方案,分别是:UUID类雪花算法数据库自增主键Redis原子自增美团以第2、3种解决方案为基础,开发出……
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表
    • 多线程技术的历史发展和简单使用
      0阅读 0条评论 个赞
      进程与线程进程是应用的执行实例,可狭义理解为一个应用程序就是一个进程。启用一个应用程序时就是启动了一个进程。该应用运行所需的所有地址空间,代码,数据及系统资源都属于此进程。进程所使用的所有资源会在进程……
    • 面试问题:Java序列化和反序列化
      0阅读 0条评论 个赞
      目录序列化和反序列化的概念应用场景?序列化实现的方式继承Serializable接口,普通序列化继承Externalizable接口,强制自定义序列化serialVersionUID的作用静态变量不会……
    • spring接口有多个实现类 应该给哪个注入这个依赖?
      0阅读 0条评论 个赞
      一、问题的描述在实际的系统应用开发中我经常会遇到这样的一类需求,相信大家在工作中也会经常遇到:同一个系统在多个省份部署。一个业务在北京是一种实现方式,是基于北京用户的需求。同样的业务在上海是另外一种实……
    • Java线程面试题前50名
      0阅读 0条评论 个赞
      .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
    • 适时变革 共创未来| 2022数字技能职业教育生态研讨会圆满落幕
      0阅读 0条评论 个赞
      2022年8月25日,由恒利联创主办的“适时而变,联创未来”2022数字技能职业教育生态研讨会在线上举行。本届大会围绕“数字技能职业教育和数字化人才培养”的话题,邀请了Oracle技术人才发展部总经理……
    • 面试官:为什么系统不推荐双写?
      0阅读 0条评论 个赞
      某日,阿雄跑去面试!于是有如下情形面试官:"阿雄是吧,做做自我介绍!"阿雄:"我叫阿雄,来自某a国际电商公司!"面试官:"我看你项目里用了elasticsearch,你是怎么同步数据的呢?"阿……
    • Java开发学习(29)——Maven依赖转移、可选依赖和排除依赖分析
      0阅读 0条评论 个赞
      现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用标签来进行jar包的引入即可。其实就是依赖……
    • MySQL查询性能优化指数下推的七大武器
      0阅读 0条评论 个赞
      前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:MySQL查询性能优化七种武器之索引潜水MySQL查询性能优化七种武器之链路追踪今天要讲的是MySQL的另一种查询性能优化方式—索……
    • Hadoop JMX监控和预警
      0阅读 0条评论 个赞
      .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
    • 二战MySQL数据库【升华】
      0阅读 0条评论 个赞
      MYSQL入门系列——第二篇1.筛选条件:(1)比较运算符:(2)逻辑运算符:(3)其他操作:1.排序:2.限制:拓展:3.去重:4.模糊查询:(like'%')5.范围查询:2.聚合与分组(重点……
    • 与docker卷一起安装的注意事项
      0阅读 0条评论 个赞
      目录Content使用数据卷(volume)使用挂载点(共享宿主目录,bindmount)目录兼容性可移植性目录替代相关指定位置--volume与--mount区别镜像保存docker-compos……
    • 内存泄漏——原因、避免和位置
      0阅读 0条评论 个赞
      .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
    • SQL Server表变量和临时表的区别
      0阅读 0条评论 个赞
      一、表变量表变量在SQLServer2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键……
    • [PostgreSql]生产级数据库安装需要考虑哪些问题?
      0阅读 0条评论 个赞
      大家好,我是字母哥(coder)!我让公司的小伙伴写一个生产级别的PostgreSQL的安装文档,结果他和我说:“不是用一个命令就能安装好么?还用写文档么?”。我知道他想说的是这个命令:yumins……
    • SQLServer自动化运维系列监控磁盘剩余空间和SQLServer错误日志(PowerShell)
      0阅读 0条评论 个赞
      需求描述在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等。如果发生异常,需要提前预警的,通知形式一般为发邮件告知。在所有的自检流程中最基础的一个就是磁盘剩余空间检测。作为……
    • 国产超级大脑———rk 3568核心板!
      13阅读 0条评论 个赞
      从1956年麦卡锡首次提出“人工智能(AI)”的概念至今,人工智能已有66年的历史,而人工智能真正的崛起却是在最近的10年。随着消费电子行业的快速发展和激烈竞争,人工智能再度流行起来,尽管许多企业对A……
    • 用Python实现广度优先搜索
      3阅读 0条评论 个赞
      图是一种善于处理关系型数据的数据结构,使用它可以很轻松地表示数据之间是如何关联的图的实现形式有很多,最简单的方法之一就是用散列表背景图有两种经典的遍历方式:广度优先搜索和深度优先搜索。两者是相似的。实……
    • :自古以来 特工程序就是兵家必败之地
      0阅读 0条评论 个赞
      正向代理的血案前几天打算使用golang做一个代理程序,golang标准库net/http/httputil已经提供了这样的能力。一把梭之后发现必然返回403Forbidden,我直接在targe……
    • 卡夫卡详解(一)——卡夫卡是什么 怎么用
      0阅读 0条评论 个赞
      kafka是什么在回答这个问题之前,我们需要先了解另一个东西--eventstreaming。什么是eventstreaming我觉得,eventstreaming是一个动态的概念,它描述了一……
    • MySQL中的存储过程(详细文章)
      0阅读 0条评论 个赞
      文章目录概述优点缺点MySQL存储过程的定义存储过程的基本语句格式存储过程的使用定义一个存储过程定义一个有参数的存储过程定义一个流程控制语句IFELSE定义一个条件控制语句CASE定义一个循环语……
    最近发布资讯
    更多