python 组合数据类型

来源:互联网 发布:淘宝0信誉店铺出售 编辑:程序博客网 时间:2024/05/17 03:34

序列类型


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插入列表LL.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)
如果生成的列表非常大,那么根据需要生成每个数据项会比一次生成整个列表更高效,这可以通过生成器实现,而不使用列表内涵。

集合


原创粉丝点击