一、列表
列表定义:一系列按特定顺序排列的元素组成。
在Python中,用方括号[]来表示列表,并用逗号来分割其中的元素。
example:
name = [‘zhangsan’,‘lisi’,‘wangmazi’]
name = ['zhangsan','lisi','wangmazi']
print(name)
#注意print(“name”)输出的是name,而不是列表。双引号表示name为字符,输出字符串本身,而不是name变量的值。
二、访问列表元素
列表是有序集合,访问列表元素,找到该元素的位置或者索引。
example:访问name中的zhangsan元素(zhangsna为name列表中第一个元素,索引为0)
print(name[0])
列表索引都是从0开始的,所以列表的长度len()比索引最大值始终大1
三、修改列表元素
(1)赋值修改
不能为一个不存在元素的位置赋值
example:
name[0]="zs"
print(name)
print(name[0])
(1)增加元素(列表末尾)
list.append(obj) list:列表名称 obj:增加的元素
example:
name.append("caocao")
print(name)
append()方法默认把新元素添加到列表末尾。
创建新的列表,可以先建立一个空列表,然后再用append()函数往空列表中添加一个个的元素。
(2)在列表中插入元素
list.insert(n,obj) list:元素名称 insert():插入函数 n:插入的位置(索引) obj:插入的新元素
example:
name.insert(0,"one")
print(name)
name.insert(2,"pipi")
name
(3)从列表中删除元素
del后面跟list : 删除整个列表
del后面跟list[n] 删除列表的第n个元素(n是从0开始,最小值可以为0)
(4)从列表中删除元素
list.pop() : 默认删除列表得最后一项元素
也可以在pop(obj)括号中添加索引obj,删除该索引对应的元素。
如果不确定列表删除用del或者pop(),看看该删除元素在后续操作中是否可以用到,如果后续还要使用,即使用pop()删除。否则用del。
>>> name=["one","zs","pipi","lisi","wangmazi","caocao"]
>>> name
['one', 'zs', 'pipi', 'lisi', 'wangmazi', 'caocao']
>>> del name[0]
>>> name
['zs', 'pipi', 'lisi', 'wangmazi', 'caocao']
>>> name.pop(0)
'zs'
>>> name
['pipi', 'lisi', 'wangmazi', 'caocao']
>>>
(5)从列表中删除元素(根据元素值删除)
list.remove(obj)
obj为元素值
remove(obj),只删除第一个obj,如果列表中有多个重复的obj,也只是删除第一个obj
(6)统计元素出现次数
list.count(obj)
统计列表中obj元素出现的次数。
>>> a
[1, 2, 3, 4]
>>> a.count(1)
1
(7)extend()
用法:list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值。 seq要添加的元素列表的列表名称。
>>> a=[1,2]
>>> b=[3,4]
>>> a.extend(b)
>>> a
[1, 2, 3, 4]
>>> b
[3, 4]
(8)index()
list.index(obj) 判断元素obj出现的位置,即obj的索引值。
(9)clear() 用于清空列表 相当于 del a[:]
用法: list.clear()
(10) copy 复制列表
list.copy() 此语法不需要导入参数。
四、组织列表
(1)排序
list.sort() 按特定顺序排列,对列表元素排列顺序的修改是永久性的。永久性排序
list.sort(reverse=True) 把list.sort()的排列顺序反转。
>>> name
['pipi', 'lisi', 'wangmazi', 'caocao']
>>> name.sort()
>>> print(name)
['caocao', 'lisi', 'pipi', 'wangmazi']
>>> name.sort(reverse=True)
>>> name
['wangmazi', 'pipi', 'lisi', 'caocao']
>>>
(2)sorted(list) 临时排序 list为要做排序的列表
保留列表元素原来的排列顺序,同时以特定的顺序呈现他们,可使用函数sorted().
>>> name=['wangmazi', 'pipi', 'lisi', 'caocao']
>>> print('name.sorted()')
name.sorted()
>>> print("name.sorted()")
name.sorted()
>>> sorted(name)
['caocao', 'lisi', 'pipi', 'wangmazi']
>>> print(name2)
['caocao', 'lisi', 'pipi', 'wangmazi']
>>> name
['wangmazi', 'pipi', 'lisi', 'caocao']
>>>
(3)倒着打印列表
list.reverse(),顾名思义,把原列表倒着打印出来,反转打印。永久性的修改列表顺序,只需要再次调用reverse()函数即可恢复到原来的顺序。
>>> name
['caocao', 'lisi', 'pipi', 'wangmazi']
>>> name.reverse()
>>> name
['wangmazi', 'pipi', 'lisi', 'caocao']
>>>
(4)确定列表的长度len()
用法 len(列表名称)
>>> name
['wangmazi', 'pipi', 'lisi', 'caocao']
>>> len(name)
4
五、练习
>>> 旅游=["新疆","西藏","大兴安岭","江南","阿姆斯特丹","普罗旺斯"]
>>> print(旅游)
['新疆', '西藏', '大兴安岭', '江南', '阿姆斯特丹', '普罗旺斯']
>>> 旅游.sorted()
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
旅游.sorted()
AttributeError: 'list' object has no attribute 'sorted'
>>> sorted(旅游) #注意sorted()的用法和sort()的用法,截然不同
['大兴安岭', '新疆', '普罗旺斯', '江南', '西藏', '阿姆斯特丹']
>>> 旅游
['新疆', '西藏', '大兴安岭', '江南', '阿姆斯特丹', '普罗旺斯']
>>> sorted(旅游)
['大兴安岭', '新疆', '普罗旺斯', '江南', '西藏', '阿姆斯特丹']
>>> 旅游.reverse()
>>> 旅游
['普罗旺斯', '阿姆斯特丹', '江南', '大兴安岭', '西藏', '新疆']
>>> sort(旅游)
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
sort(旅游)
NameError: name 'sort' is not defined
>>> 旅游.sort()
>>> 旅游
['大兴安岭', '新疆', '普罗旺斯', '江南', '西藏', '阿姆斯特丹']
>>>
六 、列表操作
遍历列表
for
range(a,b) 输出a到b之间的元素,包括a,不包括b
a=["aa","bb","cc","dd"]
for i in a:
print(i)
>>> b=range(0,9)
>>> a=list(b)
>>> print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> max(a)
8
>>> min(a)
0
>>> len(a)
9
>>> sum(a)
36
>>> for i in range(1,20,2):
print(i)
1
3
5
7
9
11
13
15
17
19
>>> for i in range(1,30):
if(i%3==0):
print(i)
3
6
9
12
15
18
21
24
27
切片
list[a🅱️x] 输出的列表包含a不包含b
list:列表名称 a:起始索引 b:结束索引 x:不常,相邻元素间的间距
>>> name=list(range(1,20)) #定义一个1到20的列表
>>> print(name) #打印输出列表
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> name
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> name[:] #列表list[ :]相当于list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> name[1:10] #列表索引1到10的打印
[2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> name[1:10:3] #列表索引1到10跨度为3的元素打印
[2, 5, 8]
>>> name[0:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> name[-10:-1] #列表如果从右往左,最右边的元素索引为-1,索引依次从右往左为-1,-2......
[10, 11, 12, 13, 14, 15, 16, 17, 18]
不能为一个不存在元素的位置赋值。