Python数据类型:列表

数据类型:列表

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)
...
1
2
('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]
>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值