一、什么是列表
列表(list)由一系列按特定顺序排列的元素组成,在Python中用方括号[]表示列表,并用逗号分隔其中的元素,例如:
['Android', 'iOS', 'Windows', 'Linux']
当然还有tuple,后边会提到。
二、列表操作
1、访问元素
和大多数编程语言相同,Python中列表元素的索引从0开始,可以通过索引来访问列表元素:
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 访问列表第一个元素
>>>os[0]
'Android'
# 访问列表第3个元素
>>>os[2]
'Windows'
# 如果访问列表最后一个元素,Python提供了特殊的方式,将索引指定为-1,如果访问倒数第二个元素则可以指定索引为-2,以此类推
>>>os[-1]
'Linux'
2、修改元素
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 通过索引修改最后一个元素
>>>os[3] = 'Ubuntu'
>>>os
['Android', 'iOS', 'Windows', 'Ubuntu']
3、添加元素
3.1、 在列表末尾添加元素
>>>os = ['Android', 'iOS', 'Windows']
>>>os.append('Linux')
>>>os
['Android', 'iOS', 'Windows', 'Linux']
3.2、 在列表中插入元素
>>>os = ['Android', 'iOS', 'Windows']
# 在索引2处插入元素
>>>os.insert(2, 'Linux')
>>>os
['Android', 'iOS', 'Linux', 'Windows']
4、删除元素
4.1、 使用del语句删除元素
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
>>>del os[1]
>>>os
['Android', 'Windows', 'Linux']
4.2、 使用方法pop()删除元素
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 删除列表最后一个元素
>>>os.pop()
'Linux'
>>>os
['Android', 'iOS', 'Windows']
# 根据索引删除指定元素
>>>os.pop(1)
'iOS'
>>>os
['Android', 'Windows']
4.3、根据值删除元素
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 如果有相同的元素,方法remove()只删除第一个
>>>os.remove('Windows')
>>>os
['Android', 'iOS', 'Linux']
5、组织列表
5.1、使用sort()对列表进行永久性排序
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 按元素首字符编码升序排列
>>>os.sort()
>>>os
['Android', 'Linux', 'Windows', 'iOS' ]
# 按元素首字符编码降序排列
>>>os.sort(reverse=True)
>>>os
['iOS', 'Windows', 'Linux', 'Android']
5.2、使用sorted()对列表进行临时排序
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 按元素首字符编码升序排列
>>>sorted(os)
['Android', 'Linux', 'Windows', 'iOS' ]
# 按元素首字符编码降序排列
>>>sorted(os, reverse=True)
['iOS', 'Windows', 'Linux', 'Android']
>>>os
['Android', 'iOS', 'Windows', 'Linux']
6、翻转列表
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
>>>os.reverse()
>>>os
['Linux', 'Windows', 'iOS', 'Android']
7、列表长度
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
>>>len(os)
4
8、遍历列表
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
>>>for o in os:
··· print(o)
···
Android
iOS
Windows
Linux
9、使用 range()创建数字列表
# 默认从0开始,生成小于8的整数列表
>>>l1 = list(range(8))
>>>l1
[0, 1, 2, 3, 4, 5, 6, 7]
# 生成从1开始,结束值小于8的整数列表
>>>l2 = list(range(1, 8))
>>>l2
[1, 2, 3, 4, 5, 6, 7]
# 生成从0开始,步长为2增加,小于8的整数列表
>>>l3 = list(range(0, 8, 2))
>>>l3
[0, 2, 4, 6]
10、数字列表简单统计
>>>ds = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 求最小值
>>>min(ds)
0
# 求最大值
>>>max(ds)
9
# 求和
>>>sum(ds)
45
11、列表生成式
# v**2表示求v的平方
>>>squares = [v**2 for v in range(1,10)]
>>>squares
[1, 4, 9, 16, 25, 36, 49, 64, 81]
12、切片:处理列表的部分元素
使用切片需要指定两个索引,到达指定的第二个索引前面的元素后停止提取元素:
>>>os = ['Android', 'iOS', 'Windows', 'Linux']
# 提取列表前两个元素
>>>os[0:2]
['Android', 'iOS']
# 提取列表第2~3个元素
>>>os[1,3]
['iOS', 'Windows']
# 如果不指定第一个索引值,则默认从0开始
>>>os[:3]
['Android', 'iOS', 'Windows']
# 如果不指定第二个索引值,则默认提取到最后一个元素
>>>os[2:]
['Windows', 'Linux']
# 提取最后两个元素
>>>os[-2:]
['Windows', 'Linux']
# 每两个取一个
>>>os[::2]
['Android', 'Windows']
# 复制列表
>>>os1 = os[:]
>>>os.pop()
'Linux'
>>>os
['Android', 'iOS', 'Windows']
>>>os1
['Android', 'iOS', 'Windows', 'Linux']
13、元组(tuple)
另一种有序列表叫元组(tuple)。tuple和list非常类似,但是tuple初始化就不能修改,Python中用()表示tuple:
('Android', 'iOS', 'Windows', 'Linux')
创建一个空的tuple:
>>>t = ()
创建只有一个元素的tuple:
注意后边的逗号
>>>t = (100,)
使用 range()创建数字tuple:
>>>t = tuple(range(0, 5))
>>>t
(0, 1, 2, 3, 4)
除了不能修改tuple外,我们可以像使用list那样来使用tuple,因为tuple不可变,所以代码更安全。
14、join()
>>>l = ['1', '0', '2', '4']
# join()函数可将字符列表拼接成一个字符串
>>>'-'.join(l)
'1-0-2-4'
>>>t = ('1', '0', '2', '4')
>>>'-'.join(t)
'1-0-2-4'