Python数据类型:列表

来源:互联网 发布:手游数据查询 编辑:程序博客网 时间:2024/06/07 01:14

数据类型:列表

python中的数据可以分为下面四个类型

  • 集合:几何中的元素无需、不可变。

  • 数字:整数、浮点数、负数、复数等,支持各种算术运算。

  • 序列:字符串、列表和元组都属于序列,支持索引、分片和合并等操作。

  • 映射:字典,将减映射到值。

列表基本特点

列表常量用方括号表示,例如:[1,2,'abc']。列表对象是一种有序序列,其主要特点如下。

  • 列表可以包含任意类型的对象:数字、字符串、列表、元组或其他对象。

  • 列表是一个有序序列。与字符串类似,列表中的每一项按照从左到右的顺序,可通过位置偏移量进行索引和分片。

  • 列表是可变的。首先列表长度可变,即可添加或删除列表成员。其次,列表中的对象可直接修改。

  • 列表存储的是对象的引用,类似于C/C++的指针数组。每个列表成员存储的是对象的引用,而不是对象本身。

列表基本操作

列表基本操作包括创建列表、求长度、合并、重复、迭代、关系判断、索引、分片和矩阵等。

1.创建列表

列表对象可以用列表常量或list()函数来创建。例如:

>>> []                          #创建一个空的列表对象[]>>> list()                      #创建一个空的列表对象[]>>> [1,2,3]                     #用同类型数据创建列表对象[1, 2, 3]>>> [1,2,('a','abc'),[12,34]]   #用不同类型数据创建列表对象[1, 2, ('a', 'abc'), [12, 34]]>>> list('abcd')                #用可迭代对象创建列表对象['a', 'b', 'c', 'd']>>> list(range(-2,3))           #用连续整数创建列表对象[-2, -1, 0, 1, 2]>>> list((1,2,3))               #用元组创建列表对象[1, 2, 3]>>> list(x+10 for x in range(5))#用解析结构创建列表对象[10, 11, 12, 13, 14]>>>

2.求长度

用len()函数获取列表长度。例如:

>>> len([]) 0>>> len([1,2,('a','abc'),[12,34]])4>>>

3.合并

加法运算可用于合并列表。例如:

>>> [1,2]+['abc',20][1, 2, 'abc', 20]>>> [1,2]+[20,'abc']    #有序[1, 2, 20, 'abc']>>>

4.重复

乘法运算可用于创建具有重复值的列表。例如:

>>> [1,2]*3[1, 2, 1, 2, 1, 2]>>>

5.迭代

迭代操作可用于便利列表中的对象。例如:

>>> x=[1,2,('a','abc'),[12,34]]>>> for a in x:print(a)...12('a', 'abc')[12, 34]>>>

6.关系判断

可用in操作符判断对象是否属于列表。列表:

>>> 2 in[1,2,3]True>>> 'a' in [1,2,3]False>>>

7.索引

列表与字符串类似,可通过对象在列表中的位置来索引。列表对象也可通过索引进行修改。例如:

>>> x=[1,2,['a','b']]>>> x[0]        #输出第1个列表对象1>>> x[1]2>>> x[2]['a', 'b']>>> x[-1]       #用负数从来列表末尾开始索引['a', 'b']>>> x[2]=100    #修改第3个列表对象>>> x[1, 2, 100]>>>

8.分片

与字符串类似,可通过分片来获得列表中的部分对象。也可通过分片将多个对象替换成新的对象。例如:

>>> x=list(range(10))               #创建列表对象>>> x[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> x[2:5]                          #返回分片列表[2, 3, 4]>>> x[2:]                           #省略分片结束位置时,分片直到列表结束[2, 3, 4, 5, 6, 7, 8, 9]>>> x[:5]                           #省略分片开始位置时,分片从第一个对象开始[0, 1, 2, 3, 4]>>> x[2:7:2]                        #指定分片时偏移量步长[2, 4, 6]>>> x[7:2:-2]                       #步长为负数时,按相反顺序获得对象[7, 5, 3]>>> x[2:5]='abc'                    #通过分片替换多个对象>>> x[0, 1, 'a', 'b', 'c', 5, 6, 7, 8, 9]>>> x[2:5]=[10,20]                  #通过分片替换多个对象>>> x[0, 1, 10, 20, 5, 6, 7, 8, 9]>>>

9.矩阵

列表中的对象可以是任意类型,所以可通过嵌套列表表示矩阵。例如

>>> x=[[1,2,3],[4,5,6],[7,8,9]]>>> x[0]        #用一个位置信息索引嵌套的字列表[1, 2, 3]>>> x[0][0]     #用两个位置信息索引字列表包含的对象1>>>

常用列表方法

>>> x=[1,2]>>> x.append('abc')     #末尾添加一个对象>>> x[1, 2, 'abc']>>>>>>#下面是用extend()方法用于在列表末尾添加多个对象,参数为可迭代对象>>> x=[1,2]             >>> x.extend(['a','b']) #用列表对象做参数>>> x[1, 2, 'a', 'b']>>> x.append('abc')     #用字符串做参数时,字符串作为一个对象>>> x[1, 2, 'a', 'b', 'abc']>>>>>>#insert方法用于在指定位置插入对象>>> x=[1,2,3]>>> x.insert(1,'abc')>>> x[1, 'abc', 2, 3]>>>>>>#按值删除对象,remove方法用于删除列表中指定值,如果有重复,则删除第一个>>> x=[1,2,3]>>> x.remove(2)>>> x[1, 3]>>>>>>#pop方法可按指定位置删除对象,省略位置时删除对象列表一个对象。删除时返回该对象>>> x=[1,2,3,4]>>> x.pop()4>>> x[1, 2, 3]>>> x.pop(1)2>>> x[1, 3]>>>>>>#del语句删除列表中的指定对象或分片>>> x=[1,2,3,4,5,6]>>> del x[0]>>> x[2, 3, 4, 5, 6]>>> del x[2:4]>>> x[2, 3, 6]>>>>>>#clear删除全部对象>>> x=[1,2,3]>>> x.clear()>>> x[]>>>>>>#copy复制列表对象>>> x=[1,2,3]>>> y=x.copy()>>> y[1, 2, 3]>>>>>>#sort方法可将列表中的对象排序。若全部是数字,则从小到大。,若列表对象全是字符串,则按字典顺序排序。若列表包含多种类型,则会出错。>>> x=[10,2,30,5]>>> x.sort()>>> x[2, 5, 10, 30]>>> x=['bbc','abc','BBC','Abc']>>> x.sort()>>> x['Abc', 'BBC', 'abc', 'bbc']>>> x=[1,5,3,'bbc','abc','BBC']>>> x.sort()Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: unorderable types: str() < int()>>>>>>#reverse方法将列表中对象的位置翻转。>>> x=[1,2,3]>>> x.reverse()>>> x[3, 2, 1]>>>

原创粉丝点击