python列表

0.0 序列

在介绍列表之前先简单讲解下序列。

序列(sequence)是python中最基本的数据结构,序列中每个元素都有其编号即索引,第一个元素的索引为0,依次类推。python还提供了另一种编号方式,最后一个元素的索引为-1,往前-2,-3 ... 依此类推 列表 元祖 字典 集合都属于序列


列表

1.定义

  • 列表由一系列按特定序列排列的元素组成,可以是任意类型。通常给列表指定一个复数名称。列表中每个元素类型可以不一样,访问列表中元素时采用索引形式,列表大小没有限制,可以随时修改。

  • 列表是一个值,术语“列表值”指的是列表本身作为一个值可以保存在变量中,或传递给函数,像其他基本类型值一样,而不是指列表之内的那些值。


2. 列表的创建

  • 创建列表只需要用中括号将包含的元素括起来,元素之间用逗号隔开 访问时直接按照索引标记进行访问

例:

>>> lists=[1,'a','bc',True,2.89]
>>> lists
[1, 'a', 'bc', True, 2.89]
>>> print(lists)
[1, 'a', 'bc', True, 2.89]
>>> lists[0]
1
>>> lists[-1]
2.89
>>> lists[-2]==True
True
>>> 
  • 列表也可以包含其他列表值,对于其子列表中的值可以用多重下标来访问
    例:
>>> lists_1=[['小明','小红','大萝卜师傅'],[190,198,206]]
>>> lists_1[0][0]
'小明'
>>> lists_1[0][2]
'大萝卜师傅'
>>> lists_1[1][2]==198
False
>>> 
>>> x=[]
>>> x
[]
>>> print(x)
[]
>>> #x是空列表

3.列表切片

定义列表后,可从其中获取任何部分作为新列表,需要在一对方括号中,像下标一样输入两个整数作为切割范围,两个整数之间用冒号隔开。

下面通过实例来进一步说明:

>>> lists=[0,1,2,3,'a','b','c','小明','小红','大萝卜斯基']
>>> lists[0:0]
[]
>>> lists[0:1]
[0]
>>> lists[0:3]
[0, 1, 2]
>>> lists[1:4]
[1, 2, 3]
>>> lists[1:5]
[1, 2, 3, 'a']
>>> lists[3:3]
[]
>>> lists[-2:-1]
['小红']
>>> lists[-2:0]
[]
>>> lists[9:10]
['大萝卜斯基']
>>> lists[-1:0]
[]
>>> lists[-2:]
['小红', '大萝卜斯基']
>>> lists[-1:]
['大萝卜斯基']
>>> lists[:0]
[]
>>> lists[:1]
[0]
>>> lists[:-1]
[0, 1, 2, 3, 'a', 'b', 'c', '小明', '小红']
>>> lists[:]
[0, 1, 2, 3, 'a', 'b', 'c', '小明', '小红', '大萝卜斯基']
>>> 

可以看到当用两个正整数list[x:y]对列表进行切片的时候,范围为[x,y-1] 即只包含上限,特别的当选取某个x同时作为自己的上下限时,此时所切列表为空列表 x,y 为负整数时同理

也可以省略一个参数 :

lists[:y] 此时参数上限默认为第一个元素
list[x:] 此时参数下限默认为最后一个元素


4.列表的操作

除了切片以外还有一些基本操作,与字符串类似

列表操作符 操作符含义
+ 连接两个列表
* <整数类型> 对列表进行整数次重复
len() 统计列表中元素的个数
del list(x[, start[, end ]]) 删除(下面会详细介绍)
for in : 对列表进行循环举例
in 成员检查,判断是否在列表中

上代码:

>>> list1=[1,2,3,'a','b','c',True]
>>> list2=[4,5,6,'a','b','c',False]
>>> list1+list2
[1, 2, 3, 'a', 'b', 'c', True, 4, 5, 6, 'a', 'b', 'c', False]
>>> list2*3
[4, 5, 6, 'a', 'b', 'c', False, 4, 5, 6, 'a', 'b', 'c', False, 4, 5, 6, 'a', 'b', 'c', False]
>>> len(list1)
7
>>> len(list1+list2)
14
>>> for i in list1:
    i

1
2
3
'a'
'b'
'c'
True
>>> 'a' in list1
True
>>>


不同于有返回值的pop() 方法。语句 del 还可以从列表中删除切片或清空整个列表

下面我们来详细操作一下

>>> list1=[0,1,2,3,4,5,6,7,8,9]
>>> del list1[0]
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del list1[0:3]
>>> list1
[4, 5, 6, 7, 8, 9]
>>> del list1[:]
>>> list1
[]
>>> del list1
>>> list1
Traceback (most recent call last):
  File "", line 1, in 
    list1
NameError: name 'list1' is not defined
>>> 

5. 列表方法集合

在python官方教程有关于列表对象所有方法的介绍

5.1

list.append(x)

将元素添加到列表末尾,

等价于list1[len(list1):]=[x]

5.2

list.extend(list2)

将一个给定列表中的所有元素都添加到另一个列表中

等价于list1[len(list1):]=list2

5.3

list.insert(i,x)

在指定位置插入一个元素。

第一个参数是准备插入到其前面的那个元素的索引,例如a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)

5.4

list.remove(x)

删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。

5.5

list.index(x[

list.pop([i])

从列表的指定位置删除元素,并将其返回。如果没有指定索引, a.pop() 返回最后一个元素。元素随即从列表中被删除(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。

5.6

list.clear()

从列表中删除所有元素。等价于 del a[:]

5.7

list.index(x[, start[, end ]])

返回基于零的索引中值等于x的第一个元素.如果没有这个元素将会引发一个错误。可选的参数开始和结束被解释为切片符号,并用于限制搜索到列表的特定子序列。返回的索引相对于起始参数开始而不是完整序列。

5.8

list.count(x)

返回元素x在列表中出现的次数

5.9

list.sort(key=None,reverse=False)

排列列表中的元素 参数可以用于排序定制,参见python sorted函数

5.10

list.reverse()

将原列表中的元素倒置

5.11

list.copy()

返回列表的浅拷贝 等价于list1[:]


增:

对于字符串,可以通过split()函数,将字符串拆分成一个列表,默认以空格分割

例:

>>> 'i love that girl'.split()
['i', 'love', 'that', 'girl']
>>> 

你可能感兴趣的:(python列表)