没有学不会的python--复合类型(1)--概念和元组

其实复合类型并不复杂,对于没有学习过python的朋友来说,完全不用担心。

复合类型是什么?

前面我们有讲述过简单数据类型,由于我在多个平台都有上传文章,所以这里就不贴出链接来了,烦请有需要的朋友自己去个人主页看一下,本章是基于简单数据类型的基础上来讲的。

复合类型就是一个包含有很多基本元素的数据类型。

做一个比较形象的比喻,比如我们经常喝的奶茶,里面会有很多的果粒、果冻、珍珠、奶精、水等其它原料,这些原料混合起来就成了一杯可口的奶茶。复合类型就像是一杯奶茶,它可能混合了整型、字符型、浮点型、布尔型甚至复合类型的一种数据类型。意思是,复合类型其实不是什么数据类型,它更像是一种数据的组织方式,一种数据存放的容器。

复合类型复杂吗?

其实复合类型在c/c++中是比较复杂的,他需要自己组织结构方式。但是在python中,这些问题就没有了,python的复合类型基本都封装好了,而我们日常所用的,基本就是基于这些封装好的函数对这些复合类型进行操作而已。

在python中,常用的复合类型其实就是元组、列表、字典、集合。其实字符串也算是复合类型的一种,但是字符串要将的内容比较多,后面会有专门的一章来讲述,所以本章且不讨论字符串类型。

先通过表格来看看复合类型的大概情况。

名称术语用途
元组tuple用来存储一组固定的数据元素
列表list用来存储一组可变的数据元素,可以对列表进行添加删除数据元素
字典dict类似于列表,不同的是,这里面存储的都是键值对
集合set类似于列表,不同的是,这里面不含有重复的元素

通过表格我们大致知道了每个复合类型都是做什么的,有了基础的印象后,说一些通用的运算,即上面的四个复合类型都有的操作。

复合类型的通用操作

复合类型基本都是多个元素组合成的一种数据容器,所以可想而知,围绕着复合类型的操作,基本都是针对数据元素的增删改查进行的。

复合类型一般都有一下通用操作:

  • 可用in判断某元素是否包含在集合内。
  • 可通过切片获取集合内的某些元素。不知道切片是什么的,请看简单数据类型的章节。
  • 都是可迭代对象,可以循环迭代集合内的每个元素。
  • 可用len()函数计算集合的元素数量,即集合长度。

上边基本上把python的复合类型的基本概念通俗的说出来了,但是远不只这么简单,这里基本上只是让我们知道了有这么个东西,但是涉及到具体的操作,又是另外一说了。

在开始进入正题之前,先提醒下朋友们,对于学习集合类型的时候,不要对集合类型有哪些函数死记硬背,这不是正确的打开姿势。正确的姿势是,我们只需要知道某个复合类型可以进行什么样的操作就行了,至于函数怎么写,需要传递什么参数,可以在实际需要的时候通过度娘或者编辑器的智能提示得出。但是得出后我们不要复制,而是自己敲,这样一来二去以后你就自然的熟记了所有函数,并且占用你脑内存的都是一些常用的函数。

好咯,现在开始上菜:

 

小标

 

饭前小吃--tuple即元组

为什么说元组是饭前小吃呢,因为元组在python出现的地方特别多,尤其是传递参数的时候,但是往往我们都不会注意到,但是元组起到的作用并不是特别大。所以就像我们的饭前小吃,填填肚子,不顶饿。

 

小标

 

元组是什么,元组就是一组被()包裹的数据类型,比如(元素1,元素2,元素3...)

元组是一组不可变的数据集合,什么是不可变呢?留到列表的时候来讲,现在我们就需要知道元素是一组固定元素的集合,即我们创建它的时候就应该声明好它里面有什么数据类型。

下面开始看代码和注释,请仔细看。

元组的初始化

# 元组的初始化

# 直接用括号包裹元素,就是元组
tuple_a = (1, 2, 3, 2)

# 可以使用tuple函数生成元组,比如将将一个列表([1,2,3]就是列表)转成元组。
tuple_b = tuple([1, 2, 3])

# 即使元组只有一个元素,也需要用括号包裹,并且需要逗号,不可缺少。因为()不仅是元组符号也是运算符号,所以(1)并不是元组
tuple_c = (1,)

元组基本上就上面两种初始化方法,需要注意的是当元组只含有一个元素的时候,必须包含','。

元组的运算

首先讲一下,元组是可以通过下标,比如下图:

 

小标

 

如果我们想获取'b'元素,我们可以通过正向排序的[1]下标获取,也可以通过反向排序的[-3]下标获取。

那么接下来我们看看元组都可以做什么。

 
# 元组常用操作

# 获取tuple_a中含有多少个2元素
num = tuple_a.count(2)
print("含有2元素的数量是:{0}".format(num))

# 获取某个元素在元组中的位置,返回的是该元素在元组中第一次出现的位置
index = tuple_a.index(2)
print("第一次出现2的位置是:{0}".format(index))

# 获取元组的长度
length = len(tuple_a)
print("tuple_a含有{0}个元素".format(length))

# 通过下标获取1元素,分别是正序和反序,结果都是1即item_1等于item_2
item_1 = tuple_a[0]
item_2 = tuple_a[-4]
print("item_1是{0},item_2是{1}".format(item_1, item_2))

# 判断元组是否包含某个元素,用in
if 2 in tuple_a:
 print(True)
else:
 print(False)

# 迭代元组
for item in tuple_a:
 print(item)

运行结果:

含有2元素的数量是:2
第一次出现2的位置是:1
tuple_a含有4个元素
item_1是1,item_2是1
True
1
2
3
2

我们可以看到,常用的元组操作就上面这些,因为元组是不可变的,所以针对元组可进行的操作就比较少。

结合现代人的阅读方式,所以我将控制文章篇幅,其他复合类型将留到下一章来讲。

看完了这一章,你应该知道元组都可以进行什么操作了。

同时,如果对于我的文章感兴趣,对这系列教程感兴趣,可以关注我的公众号。

 

小标

 

如果你有什么意见,想要反馈给我,可以加我。 

小标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值