python 组合数据类型

序列类型


python提供了五种内置序列类型:
bytearray
bytes
list
str
tuple

元组

元组是个有序的序列,其中包含0个或多个对象引用。
与字符串类似,元组也是固定的,因此不能替换或删除其中的任意数据项。如果需要修改,我们应该使用列表而不是元组,如果我们有一个元组,但又要对其进行修改,那么可以使用list转换函数将其转换为列表,之后再产生的列表上进行适当的修改。
tuple()-不指定参数时将返回一个空元组。该函数至多只能接受一个参数。
元组只提供了两种方法:
t.count(x),返回对象x在元组中出现的次数;
t.index(x),返回对象在元组t出现的最左边位置-在元组中不包含x时,则产生ValueError异常(这些方法对列表也是可用的)。

命名的元组

命名的元组与普通的元组一样,有相同的表现特征,其添加的功能就是可以根据名称引用元组中的项,就像根据索引位置一样,这以功能使我们可以创建数据项的聚集。
collections模块提供了namedtuple()函数,该函数用于创建自定义的元组数据类型,例如:
Person = collections.namedtuple('Person','name sex age')
collections.namedtuple()的第一个参数是想要创建的自定义元组数据类型的名称,第二个参数是一个字符串,其中包含使用空格分隔的名称,每个名称代表该元组数据类型的一项。

列表

列表是包含0个或多个对象引用的有序序列。
与字符串及元组不同的是,列表是可变的,因此,我们可以对列表中的项进行删除和替换,插入,替换或删除列表中的分片也是可能的。
list数据类型可以作为函数进行调用,list()-不带参数时进行电泳时将返回一个空列表

列表方法

语法描述
L.append(x)将数据项x追加到列表L的末尾
L.count(x)返回数据项x在L中出现的次数
L.extend(m) or L += m将iterable m 的项追加到L的结尾处,操作符+=完成同样的功能
L.index(x,start,end)返回数据项x在列表L中(或L的[start:end]分片中)最左边出现的索引位置,否则会产生一个ValueError异常
L.insert(i,x)在索引位置int i 处将数据项x插入列表L
L.pop()返回并移除列表L最右边的数据项
L.pop(i)返回并移除L中索引位置int i 处的数据项
L.remove(i)从列表L中移除最左边出现的数据项x,如果找不到x就产生ValueError异常
L.reverse()对列表L进行反转
L.sort(...)对列表L进行排序,与内置的sorted()函数一样,这一方法可以接受可选的key和reverse参数

尽管可以使用分片操作符存取列表中的数据项,但在有些情况下,我们需要提取两个或更多的数据项,可以使用序列拆分实现。任意可迭代的(列表,元组等)数据类型都可以使用序列拆分操作符进行拆分,即*。用于赋值操作符左边的两个或者多个变量时,其中的一个使用*引导,数据项将赋值给该变量,而所有剩下的数据项将赋值给带星号的变量,下面是一些实例:
first , *rest = [1,2,3,4,5] \#fisrt = 1 ,rest = [2,3,4,5] first, *mid , last = [1,2,3,4,5] \#first = 1, mid = [2,3,4], last = 5

列表内涵

[expression for item in interable]
[expression for item in interable if condition]
对于第二种语法,实际上等价于:
temp = [] for item in iterable: if condition: temp.append(expression)
如果生成的列表非常大,那么根据需要生成每个数据项会比一次生成整个列表更高效,这可以通过生成器实现,而不使用列表内涵。

集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值