1.向列表添加元素的三种方式:append、extend、insert
其中区别如下:
append:向列表的末尾元素添加元素
extend:使用一个列表来扩展另一个列表
insert:向列表指定的位置添加元素
需要注意以下代码中append(['20','30'])与extend(['20','30'])的区别
>>> member = ['xx','heiye','mitu','yijing']
(1)#使用append直接向列表末尾添加元素
>>> member.append('10')
>>> member
['xx', 'heiye', 'mitu', 'yijing', '10']
#使用append直接向列表末尾添加一个列表元素
>>> member.append(['20','30'])
>>> member
['xx', 'heiye', 'mitu', 'yijing', '10', ['20', '30']]
#使用append直接向列表末尾添加多个元素则出错,不可添加多个元素
>>> member.append('40','50')
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
member.append('40','50')
TypeError: append() takes exactly one argument (2 given)
(2)#使用extend直接向列表末尾添加多个列表元素,不可添加
>>> member.extend('40','50')
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
member.extend('40','50')
TypeError: extend() takes exactly one argument (2 given)
#使用extend直接向列表末尾添加一个列表元素,扩展了原始列表
>>> member.extend(['40','50'])
>>> member
['xx', 'heiye', 'mitu', 'yijing', '10', ['20', '30'], '40', '50']
(3)#使用insert向列表指定的索引处添加元素
>>> member.insert(1,'888')
>>> member
['xx', '888', 'heiye', 'mitu', 'yijing', '10', ['20', '30'], '40', '50']
>>> member.insert(3,['你好','测试','研发'])
>>> member
['xx', '888', 'heiye', ['你好', '测试', '研发'], 'mitu', 'yijing', '10', ['20', '30'], '40', '50']
2.从列表删除元素有三种方法,分别是del、remove、pop
>>> member = ['xx', 'heiye', 'mitu', 'yijing', '10', ['20', '30'], '40', '50']
(1)#remove只需要知道列表元素的名称即可删除该元素
>>> member.remove('heiye')
>>> member
['xx', 'mitu', 'yijing', '10', ['20', '30'], '40', '50']
(2)#del不是内置函数,是语句,删除指定的元素的索引即可删除该元素
>>> del member[2]
>>> member
['xx', 'mitu', '10', ['20', '30'], '40', '50']
#del +列表名称,表示将整个列表从内存中剔除
>>> del member
>>> member
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
member
NameError: name 'member' is not defined
(3)pop
>>> member = ['xx', 'mitu', '10', ['20', '30'], '40', '50']
#pop取出的元素会被删除
>>> member.pop()
'50'
>>> member
['xx', 'mitu', '10', ['20', '30'], '40']
#指定删除元素的索引,显示出来再删除
>>> member.pop(2)
'10'
>>> member
['xx', 'mitu', ['20', '30'], '40']
#通过赋值取出来再删除
>>> name = member.pop()
>>> name
'40'
>>> member
['xx', 'mitu', ['20', '30']]
3.列表的计数count及index(列表的内置函数)
内置函数则使用该列表.内置函数
#count为计算指定的元素出现的次数
list1 = ['xx', 'mitu', '10', ['20', '30'], '40']*3
>>> list1
['xx', 'mitu', '10', ['20', '30'], '40', 'xx', 'mitu', '10', ['20', '30'], '40', 'xx', 'mitu', '10', ['20', '30'], '40']
>>> list1.count('10')
3
>>> list1.count('20')
0
#index是查询指定元素的索引值,下面的查询的是从索引为3到索引为9的范围中查找元素‘10’的索引值为7
>>> list1
['xx', 'mitu', '10', ['20', '30'], '40', 'xx', 'mitu', '10', ['20', '30'], '40', 'xx', 'mitu', '10', ['20', '30'], '40']
>>> list1.index('10',3,9)
7
4.列表的排序(sort及sort(reverse))
>>> list1 = ['xx', 'mitu', '10', ['20', '30'], '40']
#将列表反向输出
>>> list1.reverse()
>>> list1
['40', ['20', '30'], '10', 'mitu', 'xx']
#对列表进行排序
>>> list2 = [1,5,7,9,2,3,6]
>>> list2.sort()
>>> list2
[1, 2, 3, 5, 6, 7, 9]
#对列表进行反向排序
>>> list2.sort(reverse = True)
>>> list2
[9, 7, 6, 5, 3, 2, 1]
#对列表进行正向排序
>>> list2.sort(reverse = False)
>>> list2
[1, 2, 3, 5, 6, 7, 9]
5.列表的copy和clear
>>> list1 = [1, 2, 3, 4, 5]
#对列表进行copy
>>> list2 = list1.copy()
>>> list2
[1, 2, 3, 4, 5]
#对列表进行清空操作,但是列表仍然存在,只不过为空
>>> list2.clear()
>>> list2
[]
6.列表的切片
切片的列表对原列表没有任何影响,相当于对原列表进行了一部分拷贝或者全部拷贝。
>>> member = ['xx', 'mitu', '10', ['20', '30'], '40', '50']
#切片中包含的值也是取前不取后,不包括结束的索引值
>>> member[1:4]
['mitu', '10', ['20', '30']]
#打印出原来的列表,表明切片后不影响原来的列表
>>> member
['xx', 'mitu', '10', ['20', '30'], '40', '50']
>>> member[3:4]
[['20', '30']]
>>> member
['xx', 'mitu', '10', ['20', '30'], '40', '50']
使用切片时也会有步长
>>> member = ['xx', 'mitu', '10', ['20', '30'], '40', '50']
>#列表中步长为2
>>> member[0:6:2]
['xx', '10', '40']
#切片支持负向索引
>>> member = ['xx', 'mitu', '10', ['20', '30'], '40', '50']
>>> member[-6:-1]
['xx', 'mitu', '10', ['20', '30'], '40']
7.list可以进行比较、拼接
>>> list1 = [234]
>>> list2 = [789]
#对两个list进行比较
>>> list1 > list2
False
#对list进行扩充
>>> list2 *= 3
>>> list2
[789, 789, 789]
#使用in或者not in进行元素查询
>>> 'test' in list2
False
>>> 789 in list2
True
>>> list9 = [22, 34, [666, 888], 'riqi', '菇凉']
>>> 22 not in list9
False
>>> 666 in list9
False
>>> 666 in list9[2][0]
Traceback (most recent call last):
File "<pyshell#83>", line 1, in <module>
666 in list9[2][0]
TypeError: argument of type 'int' is not iterable
#对列表中的列表进行查询时需使用索引
>>> list9[2][0]
666