(1)列表由一系列按特定顺序排列的元素组成。
(2) 特点:有序、不唯一,列表的元素可以被修改(链表存储方式)。
(3)用方括号([])表示列表,并用逗号分隔其中的元素。
names = ['jane','may','james','kai'] print(names)
['jane', 'may', 'james', 'kai']
(4)访问列表元素
列表是有序集合,因此要访问列表的任意元素,只需将该元素的位置(索引)告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在方括号内。
names = ['jane','may','james','kai'] print(names[1])
may
现在可以对任意列表元素调用字符串方法。
(5)索引从0而不是1开始
在Python中,第一个列表元素的索引为0,而不是1。多数编程语言是如此规定的,这与列表操作的底层实现相关。
第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。例如,要访问第四个列表元素,可使用索引3。
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:
names = ['jane','may','james','kai'] print(names[-1])
kai
其他元素取值,也类似。例如倒数第二个为-2,倒数第三个为-3。
(6)使用列表中的各个值
# 通勤方式 # cars = ['honda','mazda','bmw','benz'] # tools = f"I go to work by {cars[0].title()}." # print(tools) # tools = f"I go to work by {cars[1].title()}." # print(tools) # tools = f"I go to work by {cars[2].title()}." # print(tools) # tools = f"I go to work by {cars[3].title()}." # print(tools)
I go to work by Honda.
I go to work by Mazda.
I go to work by Bmw.
I go to work by Benz.
(7) 修改元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
# 修改列表元素 cars = ['honda','mazda','bmw','benz'] print(cars[0]) print(cars) cars[0] = 'byd' print(cars[0]) print(cars)
honda
['honda', 'mazda', 'bmw', 'benz']
byd
['byd', 'mazda', 'bmw', 'benz']
支持切片修改
cars[1:3] = ['byd','audi']
(8)在列表末尾添加元素
附加(append)到列表
cars = ['honda','mazda','bmw','benz'] cars.append('volvo') print(cars)
['honda', 'mazda', 'bmw', 'benz', 'volvo']
(9) 在列表中插入元素
使用方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
cars = ['honda','mazda','bmw','benz'] cars.insert(0,'volvo') print(cars)
['volvo', 'honda', 'mazda', 'bmw', 'benz']
方法insert()在索引0处添加空间,并将值'volvo'存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置。
(10) 使用del语句删除元素
如果知道要删除的元素在列表中的位置,可使用del语句。
cars = ['honda','mazda','bmw','benz'] del cars[0] print(cars)
['mazda', 'bmw', 'benz']
使用del可删除任意位置处的列表元素,条件是知道其索引。
使用del语句将值从列表中删除后,你就无法再访问它了。
(11) 使用方法pop()删除元素
方法pop()删除列表末尾的元素,并让你能够接着使用它。
cars = ['honda','mazda','bmw','benz'] car = cars.pop() print(car) print(cars)
benz
['honda', 'mazda', 'bmw']
列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
如果不加参数,默认删除最后一个元素。
(12)弹出列表中任何位置处的元素
可以使用pop()来删除列表中任意位置的元素,只需在圆括号中指定要删除元素的索引即可。
使用pop()时,被弹出的元素就不再在列表中了。
如果你不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()。
(13)根据值删除元素
有时候,你不知道要从列表中删除的值所处的位置。如果只知道要删除的元素的值,可使用方法remove()。
cars = ['honda','mazda','bmw','benz'] cars.remove('benz') print(cars)
['honda', 'mazda', 'bmw']
如果列表中有多个重复值,只删除满足条件的第一个值。
支持切片删除
del cars[1:3]
(14)按字母表顺序永久排序 列表名.sort()
(15)按字母表反序永久排序 sort(reverse = True)
(16)按字母表顺序临时排序 sorted(列表名)
调用函数sorted()后,列表元素的排列顺序并没有变。如果要按与字母顺序相反的顺序显示列表,可向函数sorted()传递参数reverse=True。
(17)反转列表元素的排列顺序 列表名.reverse()
方法reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。
方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,只需对列表再次调用reverse()即可。
(18)列表的长度 len(列表名)
(19)遍历整个列表
names = ['james','lucy','may','peak'] for name in names: print(name.title())
James
Lucy
May
Peak
编写for循环时,对于存储列表中每个值的临时变量,可指定任何名称。然而,选择描述单个列表元素的有意义的名称大有帮助。
在for循环后面,没有缩进的代码都只执行一次,而不会重复执行。
避免缩进错误:
忘记缩进
缩进了额外的代码
(20) 支持 in
(21)字符串转换成列表
list(str)
整型不能转换成列表
(22)列表转换成字符串
#列表中含有数字和字符
li = [1,'a','b'] s = '' for i in li: s = s + str(i) print(s)
#列表中只含有字符串
li = ['1','a','b'] word = ''.join(li) print(word)
(23)列表中可以存储任何元素:数字、字符串、列表、布尔值。
(24)list.append(参数) 默认在列表最后将参数整体追加到别表中,区别于extend方法。
li = ['1','a','b'] li.append([1,2,3]) print(li)
['1', 'a', 'b', [1, 2, 3]]
(25)list.clear() 清空列表
(26)list.copy() 拷贝(复制)浅拷贝
(27)list.count() 计算元素出现的次数
(28)list.extend(可迭代的对象) 将参数分别加到列表中,扩展原来的列表举例如下:
li = ['1','a','b'] li.extend([1,2,3]) print(li)
['1', 'a', 'b', 1, 2, 3]
扩展:iterable可迭代 --- 字符串、列表可迭代。
(29)list.index() 根据参数获取参数在列表中的位置
(30)