上一期我们介绍了列表的创建删除以及对列表内元素的操作(对这些不了解的小伙伴可以查看一下上一篇博客python语言基础之列表(一)-CSDN博客),这一期我们继续讲关于列表的知识。
列表的统计计算
Python中的列表提供了内置的一些函数来实现统计计算方面的功能。下面介绍常用的功能。
获取指定元素出现的次数
使用列表对象的count()方法可以获取指定元素在列表中的出现次数。
语法格式如下:
listname.count(obj)
其中,listname为需要统计的列表名称,obj为需要统计出现次数的元素。
举例:
a = [1,3,1,68,98,43,32,78,104,43,45,34,62,43]
num = a.count(43)
print(num)
运行结果如下:
获取指定元素首次出现的下标
使用列表对象的 index()方法可以获取指定元素在列表中首次出现的位置(即索引)。
语法格式如下:
listname.index(obj)
其中,listname为列表名称,obj为需要查找的元素,返回值:首次出现的索引值。
举例:
查找数字43在列表中第一次出现的索引值。
a = [1,3,1,68,98,43,32,78,104,43,45,34,62,43]
num = a.index(43)
print(num)
运行结果如下:
注意:如果指定的对象不存在,则抛出异常,如下图:
统计数值列表的元素和
在 Python 中,提供了sum()函数用于统计数值列表中各元素的和。
语法格式如下::
sum(listname,sta)
其中,listname为要统计的列表,sta表示统计出列表总和后结果再加上sta。
举例:
a = [1,3,1,68,98,43,32,78,104,43,45,34,62,43]
num1 = sum(a)
num2 = sum(a,5)
print(num1)
print(num2)
运行结果如下:
对列表进行排序
在实际开发时,经常需要对列表进行排序。Python中提供了两种常用的对列表进行排序的方法,下面分别进行介绍:
使用列表对象的sort()方法实现
列表对象提供了sort0方法用于对原列表中的元素进行排序。排序后,原列表中的元素顺序将发生改变。
语法格式如下:
listname.sort(key=None,reverse=True)
其中,listname表示要进行排序的列表,key表示指定一个从每个列表元素中提取一个比较键(例如,设置“key=str.lower”表示在排序时不区分字母大小写),reverse为可选参数,如果将其值指定为True,则表示降序排列;如果将其值指定为False,则表示升序排列。默认为升序排列。
举例:
a = [1,3,1,68,98,43,32,78,104,43,45,34,62,42]
print('原列表:',a)
a.sort()
print('升序后列表:',a)
a.sort(reverse=True)
print('降序后列表:',a)
运行结果如下:
使用内置函数sorted()实现
在 Python中,提供了一个内置的sorted()函数,用于对列表进行排序。使用该函数进行排序后,原表的元素顺序不变。
sorted(listname, key=None, reverse=False)
其中,listname表示需要进行排序的列表名称,key表示指定从每个元素中提取一个用户比较的键,reverse为可选参数,如果将其值指定为True,则表示降序排列;如果将其值指定为False,则表示升序排列。默认为升序排列。
举例:
a = [1,3,1,68,98,43,32,78,104,43,45,34,62,42]
a_as = sorted(a)
print('升序后列表:',a_as)
a_des = sorted(a,reverse=True)
print('降序后列表:',a_des)
print('原列表:',a)
运行结果如下:
列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。列表推导式通常有以下几种常用的语法格式:
生成指定范围的数值列表
语法格式如下:
listname = [Expression for var in range]
其中,listname表示生成列表的名称,Expression为表达式,用于计算新列表的元素,var为循环变量。
举例:
import random #导入random库
randomnumber =[random.randint(10,100) for i in range(10)]
print("生成的随机数为",randomnumber)
运行结果如下:
根据列表生成指定需求的列表
语法格式如下:
newist = [Expression for var in listname]
其中,newlist表示新生成的列表名称,expression为表达式,用于计算新列表元素,var为循环变量,listname为用于生成新列表的原列表。
举例:
已知一个列表,生成一个原列表乘以二的新列表。
list1 = [3,6,9,11,5,23,9]
list2 = [i*2 for i in list1]
print(list1)
print(list2)
运行结果如下:
从列表中选择符合条件的元素组成新的列表
语法格式如下:
newlist = [Expression for var in listname if condition]
其中,newlist:表示新生成的列表名称,Expression:表达式,用于计算新列表的元素,var:变量,值为后面列表的每个元素值,listname用于生成新列表的原列表,condition:条件表达式,用于指定选条件。
举例:
已知一个列表,生成一个原列表中大于7的元素乘以2的新列表。
list1 = [3,6,9,11,5,23,9]
list2 = [i*2 for i in list1 if i >7]
print('原列表:',list1)
print('新列表:',list2)
运行结果如下:
二维列表
在Python中,二维列表通常是一个包含列表的列表,即列表的每个元素都是一个列表。
定义二维列表
创建二维列表有以下3种常用的方法:
直接定义二维列表
在 Python 中,二维列表就是包含列表的列表。即一个列表的每个元素又都是一个列表。
语法格式如下:
listname =[[元素 11,元素 12,元素 13,… 元素 1n],
[元素 21,元素 22,元素 23,…,元素 2n],
[元素 n1,元素 n2,元素 n3,…. 元素 nn]]
其中,listname表示生成的列表名称,
[元素 11,元素 12,元素 13,… 元素 1n]表示二维列表的第一行,也是第一个元素,其中元素11,元素 12,元素 13,… 元素 1n代表第一行中的列,
[元素 21,元素 22,元素 23,…,元素 2n]表示列表的第二行,
[元素 n1,元素 n2,元素 n3,…. 元素 nn]表示列表的第n行
举例:
list = [['李梅','女',18],
['赵丹','女',16],
['王华','男',19]]
print(list)
运行结果如下:
使用嵌套的for循环创建
创建二维列表,可以使用嵌套的for循环实现。
举例:
生成一个5行6列的二维列表
a = [] #新建一个空列表,用于保存生成的二维列表
for i in range(5):
a.append([]) #每一次循环在列表a中再添加一个空列表
for j in range(6):
a[i].append(j) #为内层列表添加元素
print(a)
运行结果如下:
使用列表推导式创建
使用列表推导式也可以创建二维列表,而且这种方法也是被推荐的方法,因为它比较简洁。
举例:
生成一个8行7列的二维列表:
a = [[j for j in range(7)] for i in range(8)]
print(a)
运行结果如下:
访问二维列表
创建二维数组后,可以通过以下语法格式访问列表中的元素:
listname[下标 1][下标 2]
其中,listname表示列表名称,下标1表示列表中第几行。下标值从0开始,即第1行的下标为0。下标2:表示列表中第几列。下标值从0开始,即第1列的下标为0。
举例:
访问上述二维列表a的第5行第3列的元素:
a[4][2]
以上就是python语言中列表的详细功能介绍。
于高山之巅,方见大河奔涌;于群峰之上,便觉长风浩荡。
下一篇 python语言基础之元组