赞
踩
列表是python中最灵活的有序序列,它可以储存任意的元素。开发人员可对其进行添加,删除,修改等操作。列表是一个可变序列!!!
以上通过[ ] 创建了两个列表list_one和list_two。list_one 和list_two中分别是空列表和含有
1,2,3三个元素的列表
使用list()创建了三个列表,其中list1为空,而向list2传递了一个字符串"python"存储到list2中得到6个元素'p','y','t','h','o','n'。向list3中传递了一个可迭代对象range(5)得到了一个0~4的五个元素的列表
[生成列表元素的表达式 for 表达式中的变量 in 变量要遍历的序列]
列表推导式的使用可以快速生成满足特定需求的列表,使代码的可读性增强
- #列表推导式
- #[生成列表元素的表达式 for 表达式中的变量 in 变量要遍历的序列]
- #[生成列表元素的表达式 for 表达式中的变量 in 变量要遍历的序列 if过滤条件]
- #也可以存在多个for循环
- #[生成列表元素的表达式 for 表达式中的变量1 in 变量要遍历的序列1 for 表达式中的变量2 in 变量要遍历的序列2 if过滤条件]
-
- a = [x**3 for x in range(1,4)]#[1, 8, 27]
- print(a)
- b = [y*2 for y in range(1,7) if y != 3]#[2, 4, 8, 10, 12]
- print(b)
- c = [1 for i in range(5)]
- print(c)
上图的代码可见列表推导式的创建其中for循环不一定为一个可以有多个循环存在要因题而议 ,也可以使用if语句进行过滤
学习过C语言的同学都知道,在C语言中访问数组中的某个元素可以通过下标寻找,对列表的访问其实跟C语言相似但比起更加简单,列表的访问既可以从正向访问也可以逆向访问。
- list1 = [1, 2, 3, 4, 5, 6]
- print(list1[0])#输出1
- print(list1[-6])#输出1
上方代码中对于list1列表的0和-6所输出的值都是1,说明列表的访问既可以从右向左,也可以从左向右。
列表是一个可以修改的可变序列数据类型,可以通过下标对指定位置进行修改。
- word = "python"
- list2 = list(word)
- print(list2)
- list2[0] = 1
- print(list2)
上方代码对lsit2中第1个元素的值进行了更改,就是通过下标进行的。
切片是指对序列截取其中的一部分形成新的列表
语法格式: [起始索引(start):结束索引(stop):步长(step)]
切片要点:
1.截取范围:左闭右开
2.步长取值:可正可负,默认即为1
- list_1 = [1, 2, 3, 4, 5, 6]
- lst = list_1[0:4]
- print(lst) # 输出[1, 2, 3, 4]
-
- lst = list_1[0:4:2]
- print(lst) # [1, 3]
-
- """取步长为负数,切片从后向前"""
- lst = list_1[5:0:-1]
- print(lst) # [6, 5, 4, 3, 2]
当step>0时,start默认为0,stop默认为len(list_1)
当step<0时,start默认为-1,stop默认为-len(list_1)
- list_1 = [1, 2, 3, 4, 5, 6]
-
- lst = list_1[:]
- print(lst)#[1, 2, 3, 4, 5, 6]
-
- lst = list_1[::-1]
- print(lst)#[6, 5, 4, 3, 2, 1]
列表的运算包括,‘+’,‘ * ’,及列表之间的比较
‘+’以两个列表为操作数,可以将两个列表组合成一个新列表
- word = "python"
- list_1 = [1, 2, 3, 4, 5, 6]
- list_2 = list(word)
- lst = list_1+list_2
- print(lst)#[1, 2, 3, 4, 5, 6, 'p', 'y', 't', 'h', 'o', 'n']
‘ * ’用数字n与列表1相乘,会得到一个重复n次的列表2
- list_1 = [1, 2, 3, 4, 5, 6]
- lst = list_1*3
- print(lst)#[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
列表的比较与字符的比较相识,是使用>,>=,<,<=,==,!=进行比较。列表的比较是从第一个元素开始也就是下标为0的元素,如果第一个元素相同则顺势比较下一个元素,直至比较出大小。
- list_1 = [1, 2, 3, 4, 5, 6]
- list_2 = [1, 3, 3, 4, 5, 6]
- list_3 = ['p','y','t','h','o','n']
- print(list_1<list_2)#True
- print(list_1!=list_2)#True
- print(list_1 == list_1)#True
del list[i:j:k] , list.clear() , list.pop(i) , list.remove(x)
1.del list[i:j:k]方法: 删除list列表中的第i到j(不包括j)步长为k的元素,步长为1时可以省略
- list_1 = [1, 2, 3, 4, 5, 6]
- del list_1[0]
- print(list_1)#[2, 3, 4, 5, 6]
-
- list_2 = [1, 2, 3, 4, 5, 6]
- del list_2[0:4:2]
- print(list_2)#[2, 4, 5, 6]
del 方法可以删除指定位置的元素,并且不返回值。
2.list.clear()方法 移除list列表中的所有元素==del list[:]
- list_1 = [1, 2, 3, 4, 5, 6]
- print(list_1)#[1, 2, 3, 4, 5, 6]
- list_1.clear()
- print(list_1)#[]
3. list.pop(i)方法 移除list列表的第i位元素,并且返回第i位元素的值,若i==1可以省略
- list_1 = [1, 2, 3, 4, 5, 6]
- print(list_1)#[1, 2, 3, 4, 5, 6]
-
- print(list_1.pop(2))# 3
- print(list_1)#[1, 2, 4, 5, 6]
4.list,remove(x)方法 移除list列表中第一次出现的元素x
- list_1 = [1, 2, 3, 4, 5, 6,1]
- print(list_1)#[1, 2, 3, 4, 5, 6,1]
-
- list_1.remove(1)
- print(list_1)#[2, 3, 4, 5, 6, 1]
max(list) , min(list) , len(list) , sum(list) , sorted(list) , list.sort() , list.count() , list.reverse() , list.extend(list2) , list.index(x) , list.inset(i,x),list.append(x)
1.max,min,len,s um,sorted等属于python 内置函数,操作结果以返回值返回并不会改变原有列表
max()函数是返回列表中最大值元素
min()函数是返回列表中最小值元素
len()函数是返回列表中的元素个数
sun()函数是返回列表中的元素和
- list_1 = [1, 2, 3, 4, 5, 6, 1]
- print(max(list_1)) # 6
- print(min(list_1)) # 1
- print(len(list_1)) # 7
- print(sum(list_1)) # 22
sorted(iterable, /, *, key=None, reverse=False)函数是返回排序后的列表,默认为升序,reverse = Ture时为降序
key ----是表示指定的排序规则,默认值为None,意味直接比较数列元素
- list_1 = [1, 2, 3, 4, 5, 6, 1]
- lst = sorted(list_1, key=lambda x: -x)
- print(lst)#[6, 5, 4, 3, 2, 1, 1]
上方代码的key我并没有设为默认值,而是让按照list_1列表的元素全部取反的规则进行运算
2.list.sort() 函数
此方法与sorted(list)方法类似都是对列表元素进行排序,但此方法改变原有数列,且不返回任何值
list.sort(iterable, /, *, key=None, reverse=False)
key ----是表示指定的排序规则,默认值为None,意味直接比较数列元素
reverse ----若其等于False排序方式是升序,若等于True排序方式是降序
- list_1 = [1,3,2,4,6,4,3,2,5]
- list_1.sort()
- print(list_1)#[1, 2, 2, 3, 3, 4, 4, 5, 6]
-
- list_2 = [1,3,2,4,6,4,3,2,5]
- list_2.sort(reverse=True)
- print(list_2)#[6, 5, 4, 4, 3, 3, 2, 2, 1]
3.list.count(x)函数
用于统计字符串里某个字符或子字符串出现的次数,也可以用于列表返回元素x在列表里的个数
语法:
list.count(元素) star与end 不适用于列表!!!
str.count(sub,start = 0,end = len(str))
sub ------- 搜索字符串
start ------- 开始搜索的位置,默认是第一个字符或元素其索引值是‘ 0 ’
end -------- 搜索结束的位置
- word = "hello python"
- print(word.count('e', 1, 3)) # 1
- print(word.count('o')) # 2
-
- list_1 = list(word)
- print(list_1.count('l'))# 2
4.list.reverse()函数
将列表的各元素逆序
本方法与a.sort()并不一样,a.sort()是将列表按大小重新排序,而reverse()仅仅就是逆反了一下
- list_1 = [1, 2, 3, 4, 5, 6]
- list_2 = [1, 2, 3, 4, 5, 6, 2, 3, 4]
- list_1.reverse()
- list_2.reverse()
- print(list_1) # [6, 5, 4, 3, 2, 1]
- print(list_2) # [4, 3, 2, 6, 5, 4, 3, 2, 1]
5.list.append(x)函数
将元素x添加到列表的末尾(等同于list[len(list)] = x)
- list_1 = [1, 2, 3, 4, 5, 6]
- list_1.append('a')
- print(list_1)# [1, 2, 3, 4, 5, 6, 'a']
6.list.insert(i,x)函数
在列表的索引i位置插入元素x
- list_1 = [1, 2, 3, 4, 5, 6]
- list_1.insert(0,'a')
- print(list_1)# ['a', 1, 2, 3, 4, 5, 6]
7.list.index()函数
用于从列表中找出某一个值第一个匹配项的索引位置
list.index(obj)
obj ---- 查找对象
返回值是对象索引位置,如果对象不存在则抛出异常
- list_1 = [1, 2, 3, 4, 5, 6, 1, 2, 1]
- print(list_1.index(1)) # 0
- print(list_1.index(6)) # 5
- print(list_1.index('a')) # ValueError: 'a' is not in list
8.list.extend(iterable)函数
用于将一个可迭代对象添加到当前列表的末尾
list.extend(iterable)
list ------ 想扩展的列表
iterable ------ 可以是任何的可迭代对象,例如列表,元组,字典等
- list_1 = [1, 2, 3, 4, 5]
-
- #添加列表
- list_2 = ['a','b','c']
- list_1.extend(list_2)
- print(list_1)#[1, 2, 3, 4, 5, 'a', 'b', 'c']
-
- #添加元组
- tuple_1 = (2024,5,24)
- list_1.extend(tuple_1)
- print(list_1)#[1, 2, 3, 4, 5, 'a', 'b', 'c', 2024, 5, 24]
-
- #添加字典
- """字典只能添加键!!!"""
- dict_1 = {'001':1}
- list_1.extend(dict_1)
- print(list_1) #[1, 2, 3, 4, 5, 'a', 'b', 'c', 2024, 5, 24, '001']
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。