python学习笔记4(列表)

时间:2022-05-30 10:55:51

列表是最通用的Python复合数据类型,列表中包含以逗号分隔,并在方括号([])包含的项目。

在一定程度上,列表相似C语言中的数组,它们之间的一个区别是,所有属于一个列表中的项目可以是不同的数据类型的。

存储在一个列表中的值可以使用切片(分片)操作符来访问([]和[:])用索引从0开始,使用负数索引时,Python会从右边开始计数(-1指的是序列最右边的元素)。

加号(+)符号列表连接运算符,星号(*)重复操作。

list = ['abcd', 123, 2.23, 'Ethon']
tinylist = [123,'wakey']
print list
print list[0]
print list[1:3]
print list[2:]
print tinylist * 2
print list + tinylist

产生已下结果:

python学习笔记4(列表)

分片:与使用索引来访问单个元素类似,可以使用分片操作来完成一定范围内的元素,分片通过冒号相隔的两个索引来实现。第一个索引的元素是包含在分片内的,而第二个则不包含(这是Python的惯例)。

>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[0:8:2] #步长为2,每隔一个元素
[1, 3, 5, 7]
>>> numbers[8:3:-1] #步长为-1,即从右到左提取元素
[9, 8, 7, 6, 5]
-1表示切片要倒着切,且是一个字符一个字符地切.
8表示从左边0开始计数的8位置上的数,9
3表示从左边0开始计数的3位置上的数,4,但不包括它,所以是只截到5
>>> numbers[6:-1] #从最6个数到倒数第1个数 [7, 8] >>> numbers[:] #索引为空,复制整个序列 [1, 2, 3, 4, 5, 6, 7, 8, 9]

成员资格:为了检查一个元素是否在序列中,可以使用 in 运算符

>>> name = 'Ethon'
>>> 'E' in name
True
>>> 'A' in name
False

长度、最小值、最大值

>>> numbers = [100,25,37]
>>> len(numbers)
3
>>> min(numbers)
25
>>> max(numbers)
100

列表操作

1、改变列表,元素赋值

>>> x = [1,1,1]
>>> x[0]=2
>>> x
[2, 1, 1]

2、删除元素

>>> names= ['Ethon','joho','wakey']
>>> del names[1]
>>> names
['Ethon', 'wakey']

3、分片赋值

>>> name = list('Ethon')
>>> name
['E', 't', 'h', 'o', 'n']
>>> name[2:]
['h', 'o', 'n']
>>> name[2:] = list('abc')
>>> name
['E', 't', 'a', 'b', 'c']

列表方法:方法是一个与某些对象有紧密联系的的函数,对象可能是列表,数字,也可能是字符串或其他类型的对象。

方法可以这样进行调用:  对象.方法(参数)

1、append  在列表末尾添加新的对象

>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

2、count   统计某个元素出现的次数

>>> name = ['Ethon','wakey','wakey','joho']
>>> name.count('wakey')
2

3、extend  在列表的末尾一次性追加另一个序列中的值

>>> a = [1,2,3]; b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

4、index  在列表中找个某个值第一个匹配项的索引位置

>>> name = ['Ethon','wakey','joho','Misi']
>>> name.index('joho')
2

5、insert  将对像插入到列表中

>>> numbers = [1,2,3,4,5]
>>> numbers.insert(3,'Ethon')
>>> numbers
[1, 2, 3, 'Ethon', 4, 5]

6、pop  移除列表中的一个元素(默认是第后一个元素)

pop方法是唯一一个既能修改列表,又能返回元素值的列表方法

>>> x = [1,2,3,4]
>>> x.pop()
4
>>> x
[1, 2, 3]

7、remove  移除列表中某个值的第一个匹配项

>>> name = ['joho','wakey','Ethon','misi','wakey']
>>> name.remove('wakey')
>>> name
['joho', 'Ethon', 'misi', 'wakey']

8、reverse   将列表中的元素反向存放

>>> x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]

9、sort  在原位置对列表进行排序(改变原来的列表)

>>> x = [3,1,6,5,4]
>>> x.sort()
>>> x
[1, 3, 4, 5, 6]

当用户需要一个排序后的列表副本,又不想改变原来的列表时,可以用以下方法:

>>> x = [3,1,6,5,4]
>>> y = x[:]
>>> y.sort() #将x的副本赋值给y,然后对y进行排序
>>> x
[3, 1, 6, 5, 4]
>>> y
[1, 3, 4, 5, 6]

或使用 sorted 函数

>>> x = [3,1,6,5,4]
>>> y=sorted(x)
>>> x
[3, 1, 6, 5, 4]
>>> y
[1, 3, 4, 5, 6]