列表的含义列表的本质列表的索引列表的内置函数
强制转换
list()方法 访问列表的值
索引切片 修改列表的值
append()方法 ---末尾添加一个整体元素extend()方法 ---末尾加入多个值insert()方法 ---指定位置插入指定的值 删除列表元素
pop()方法 ---弹出指定位置的值remove()方法 ---删除第一个符合指定值的数据clear()方法 对列表的值进行排序
reverse()方法 ---反向排序sort()方法 ---对列表内容排序 寻找列表元素
count()方法 ---查找指定的值出现的次数index()方法 ---查找第一个匹配项的索引值
列表的含义列表是python基本数据类型之一,它可以存放任意数据类型。
列表的构造为 list_a = [1, 2, 3, 4, 5 ] 首尾用中括号包裹,元素与元素之间用逗号和空格隔开列表的本质
列表在内存中存放的结果与集合不同,列表是有序的 列表储存的是每个元素的内存地址。 列表是可变数据,当我们改变列表元素的值时,只是列表里面连接的内存地址变了 而列表名对列表的连接并没有影响,所以列表的内存地址并没有变 例如: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a) print(id(list_a)) list_a[0] = 'a' print(list_a) print(id(list_a)) 打印的结果: [1, 2, 3, 4, 5, 6, 7, 8, 9] 2109072195264 ['a', 2, 3, 4, 5, 6, 7, 8, 9] 2109072195264 我们可以看到,列表的地址并没有变。
列表的索引
索引在列表中的表示如下图
索引从前往后是从 0 开始计数,也可以从后往前计数,从后往前是从 -1 开始。列表的内置函数 强制转换 list()方法
list()方法 强制转换成列表 支持for循环的可以被转换为列表。访问列表的值 索引
因为列表是有序的,我们可以通过索引来取出我们想要的值。
1. 正向索引 list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[6]) 得到的结果是 7 2. 反向索引 list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[-3]) 得到的值也是 7 说明索引 6 和索引 -3 的值相同。切片
需要取出多个值时,我们可以用切片来取值。
切片是用中括号来包裹需要取的值的索引值。中括号里第一个值为开始的位置,第 二个索引是结束的位置。第三个是步长。
1. 正向切片 示例代码: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[1:6]) 此时取出的是从索引 1 开始,索引 6 结束。 [2, 3, 4, 5, 6] 需要注意的是,到索引 6 结束,但是不包含索引 6 ,包头不包尾。
2. 反向切片 示例代码: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[-5:-1]) '注意点,在索引中,切片是在坐标系从左往右切' 如果是 list_a[-1:-5] 的话,输出的是一个空值。
步长
步长代表了元素与元素之间的距离间隔。默认值为 1
1. 正向切片 (1)代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[0:6:2]) 输出结果: [1, 3, 5] 当我们改变步长为 2 的时候,我们可以看到中间的 2 ,4 被跳过了,运用这样 的办法,我们可以筛选除奇偶数 (2)代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[-5:-1:2]) 输出结果: [5, 7] 我们从 -5 取到 -1 也算是正向切片,取得值步长为 1 时取得是 5678 ,但是 步长为 2 时,6 和 8 已经被跳过了。
2. 反向切片 我们也可以反向进行切片。 (1)代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[6:0:-1]) 输出结果: [7, 6, 5, 4, 3, 2] 原本步长为 1 的时候,从 6 切到 5 返回的是空值,但是我们可以看到在步长 为 -1 的时候可以从 6 切到 5 而且返回的是反向的列表值。 (2)代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[6:0:-2]) 输出结果: [7, 5, 3] 同样的切片索引值,改变步长为 -2 时,和代码示例一中不同,642 被跳过了, 我们可以得知,-1 是改变方向,-2 就可以在改变方向的基础上进行跳过。 (3)代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[-1:-5:-1]) 输出结果: [9, 8, 7, 6] 原本[-1:-5:1]返回的值应该为空,但是改变步长为 -1 时,就相当于改变了默 认的切片取值方向,所以我们也可以推出,[-5:-1:-1]的情况下返回的值应该是 空值。 (4)代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(list_a[-1:-5:-2]) 输出结果: [9, 7] 我们也应该可以推出代码示例四的情况下,元素之间的间隔。修改列表的值
我们知道了索引之后,就可以直接用索引来改变列表的元素值。
代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_a[0] = 'a' print(list_a) 输出结果: ['a', 2, 3, 4, 5, 6, 7, 8, 9]append()方法 —末尾添加一个整体元素
append() 方法用于在列表末尾添加新的对象。可以为列表、元组等等。
append()方法语法:
list.append(obj)
obj -- 添加到列表末尾的对象。
(1)代码示例:
list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list_a.append(10)
print(list_a)
输出结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我们可以看到,在列表的末尾多了一个 10 。
(2)代码示例:
list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list_a.append(['23', 'a', 'b'])
print(list_a)
输出结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, ['23', 'a', 'b']]
'''
注意点1:我们直接打印 print(list_a.append(10)) 只会输出 none
因为当我们对列表使用 append() 方法时,并没有产生新的对象。
注意点2:append()方法是在末尾添加一个元素,我们若是用此方法传入多个
元素如列表,会被当作一个元素。
'''
extend()方法 —末尾加入多个值
和 append() 方法对应,此方法用于在列表末尾一次性追加另一个序列中的多个 值,这个值可以为数字、字符、列表、元组、集合、字典。 extend()方法语法: list.extend(seq) 代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_a.extend(['23', 'a', 'b']) print(list_a) 输出结果: [1, 2, 3, 4, 5, 6, 7, 8, 9, '23', 'a', 'b'] 同样的代码,不同的方法,append()会把列表当作一个元素加入。而 extend() 会把数据集里面的元素加到里面,而不是以一个整体加入。 ''' 注意点,要是把列表合并,也就是列表加上列表,我们还可以用相加的方法,但是 该方法不推荐,代码如下: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_b = [11, 12, 13] list_a += list_b print(list_a) '''insert()方法 —指定位置插入指定的值
insert() 函数用于将指定对象插入列表的指定位置。 insert()方法语法: list.insert(index, obj) index -- 对象obj需要插入的索引位置。 obj -- 要插入列表中的对象。可以为列表、元组等等 代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_a.insert(2,'XWenXiang') print(list_a) 输出结果: [1, 2, 'XWenXiang', 3, 4, 5, 6, 7, 8, 9] 上面的代码也就是在索引为 2 的元素前面插入一个指定的值。删除列表元素 pop()方法 —弹出指定位置的值
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素 的值 pop()方法语法: list.pop([index=-1]) index -- 可选参数,要移除列表元素的索引值,不能超过列表总长度 代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] x = list_a.pop(2) print(x) 输出结果: 3 pop() 方法可以理解为弹出一个值,这个值还能继续被利用,而不是直接消失。 我们可以通过一个变量储存弹出的值。remove()方法 —删除第一个符合指定值的数据
remove() 函数用于移除列表中某个值的'第一个'匹配项。 remove()方法语法: list.remove(obj) obj -- 列表中要移除的对象。 代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_a.remove(2) print(list_a) 输出结果: [1, 3, 4, 5, 6, 7, 8, 9] 我们可以看到,2 被删除了,此方法的作用就是查找列表的所有元素,找到符合 指定的元素并删除,此删除的元素不像 pop() 一样可以利用。 '注意点,此方法是从左往右进行查找,不能从右往左。'clear()方法
clear() 函数用于清空列表,类似于 del a[:]。 clear()方法语法: list.clear() 代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_a.clear() print(list_a) 输出结果: []对列表的值进行排序 reverse()方法 —反向排序
reverse() 函数用于反向列表中元素 reverse()方法语法: list.reverse() 代码示例: list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9] list_a.reverse() print(list_a) 输出结果: [9, 8, 7, 6, 5, 4, 3, 2, 1] ''' 注意点此方法和切片操作中的 list_a[::-1] 相似, list_a[::-1] 也可以反 转排列顺序。 '''sort()方法 —对列表内容排序
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较 函数。 sort()方法语法: list.sort(reverse=False) reverse -- 排序规则,reverse = True 降序, reverse = False 升序 (默认) 代码示例: list_a = [1, 3, 2, 7, 5, 9, 6, 9, 0] list_a.sort() print(list_a) 输出结果: [0, 1, 2, 3, 5, 6, 7, 9, 9] 若将 reverse = True ,则为降序。寻找列表元素 count()方法 —查找指定的值出现的次数
count() 方法用于统计某个元素在列表中出现的次数。 count()方法语法: list.count(obj) 代码示例: list_a = [1, 3, 2, 7, 2, 9, 2, 9, 0] print(list_a.count(2)) 输出结果: 3index()方法 —查找第一个匹配项的索引值
index() 函数用于从列表中找出某个值第一个匹配项的'索引'位置。 index()方法语法: list.index(x[, start[, end]]) x-- 查找的对象。 start-- 可选,查找的起始位置。 end-- 可选,查找的结束位置。 代码示例: list_a = [1, 3, 2, 7, 2, 9, 2, 9, 0] print(list_a.index(2)) 输出结果: 2



