分享

Python基础篇 - 一文搞定Python数据结构tuple和set

 雨润心田品风雨 2020-03-25

01 如何选择合适的数据结构?为什么这很重要?

编程语言中的数据结构是用来整理和存储数据。数据结构自身内部就定义了很多方法用来处理数据,不同的数据结构拥有不能的优势,这篇文章就大概的过一遍Python中非常重要的数据结构。

首先,一定要明确一点,数据结构的选择是基于对数据和项目最终目的的整体考量。不合适的数据结构可能会导致更长的处理时间、更多的内存占用等等。

02 Python中的数据结构

Python中用途最广泛的数据结构有以下几种:

  • tuple
  • str
  • range
  • list
  • dict
  • set

我们一起来过一遍tuple和set使用方法吧!

tuple 元组

tuple这个数据结构是被小括号包围的一组数据,并且它有一个重要的属性,一旦被定义,不可以被更改

tuple元组的定义

Python基础篇 - 一文搞定Python数据结构tuple和set

图1

如图1所示,我们定义了两个变量a和b,至于区别只是b的数据后面加了一个逗号。如果不加逗号,a的 数据类型被定义成了整数型。加了逗号,Python则会默认将数据类型设置为tuple。在图2中,展示了几种常用的定义tuple的方法。

Python基础篇 - 一文搞定Python数据结构tuple和set

图2

tuple内数据的调用

Python基础篇 - 一文搞定Python数据结构tuple和set

图3

len()函数可以返回tuple数据结构中一共有多少个数据,我们注意到tuple数据结构中并不需要所有的数据格式是一样的。使用print()将tuple元组的数据个数打印出来,并且通过a[i]的形式调用每一个数据。

a[i]中的下标i是从0开始的,也就是说a中的1,2,‘逃学博士’分别对应的下标为0,1,2。

tuple数据一旦创建,无法更改

继续拿a举例,如果我们想要改变tuple a中的数据,比方说a[0],我们是不是可以这么做呢?

Python基础篇 - 一文搞定Python数据结构tuple和set

图4

我们试图将数值5赋值给a[0],但是系统报错显示tuple不支持赋值,也就是a[0]无法被修改。这也是tuple最重要的属性之一,tuple的好处就是数据安全性高。

tuple数据一旦创建,真的不能修改吗?

其实,tuple的数据无法修改也不是百分之百的。如图5

Python基础篇 - 一文搞定Python数据结构tuple和set

图6

a中的最后一个数据为list,a[2][0]则会指定为‘逃学博士’。如果对a[2][0]进行赋值,我们发现tuple 元组a的数据变了。原因在于我们无法直接赋值给a[2],因为a[2]是元组a的数据。但是,a[2]是一个list,而list的数据是可以被修改的,因此调用a[2][0]是可以直接修改list里面的内容。

集合 set

集合set是用大括号将数据包裹起来,如图7所示。

Python基础篇 - 一文搞定Python数据结构tuple和set

图7

那么,集合set最重要的属性是什么呢?集合set中是无法包含重复的数据。如图8,我们先定义一个list [1, 2, 3, 4, 1, 2, 3]。其中1, 2, 3是重复出现的。如果有一个项目需要我们去查找这个数据中一共出现的多少个数据,不包括重复的,就可以用到set集合了。

Python基础篇 - 一文搞定Python数据结构tuple和set

图8

向集合set中添加和删除数据是被允许的。添加数据使用add()函数,删除函数使用remove()函数。

Python基础篇 - 一文搞定Python数据结构tuple和set

图9

图9中,我们给集合b添加了两次数据5。但是,由于set无法拥有两个重复的数据。因此,第二次被忽略了,而且系统不会报错。

Python基础篇 - 一文搞定Python数据结构tuple和set

图10

调用remove()函数,我们第一次调用去掉了集合b中的数字5。但是第二次调用remove()系统显示报错,这是因为集合b中这时候已经没有我们要去除的5了。

总结

数据结构还有很多,集合set和元组tuple中的调用方法也还有很多。这篇文章想说的是几个要注意的比较有意思的点。谢谢大家耐心的看完。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多