栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础知识学习记录 2021——1006(列表(下))

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础知识学习记录 2021——1006(列表(下))

文章目录
    • 36
      • 通过索引直接访问元素
      • index()获得指定元素在列表中首次出现索引
      • count()获得指定元素在列表中出现的次数
      • len()返回列表长度
      • 成员资格判断
    • 37
      • 切片操作
    • 38
      • 复制列表所有的元素到新列表对象
      • 列表排序
        • 修改原列表,不建新列表的排序
        • 建新列表的排序
      • reversed()返回迭代器
      • 列表相关的内置函数汇总
        • max 和 min
        • sum
    • 39
      • 二维列表

36 通过索引直接访问元素

可以通过索引直接访问元素。索引的区间在[0,列表长度-1]这个范围。超出范围报异常。

>>> a = [10,20,30,40,50,40,30,20,10]
>>> a[2]
30
index()获得指定元素在列表中首次出现索引

index()可指定索引位置。语法是:
index(value,[start,[end]])
start 和end 指定搜索范围。

>>> a = [10,20,30,40,30,20,10,20,30]
>>> a.index(20) #搜索第一个出现的元素20位置
1
>>> a.index(20,3) #从索引位置3开始往后搜索第一个元素20位置
5
>>> a.index(20,3,8) #从索引区间3到8搜索第一个元素20位置
5
>>> a.index(20,6,8) #从索引区间6到8搜索第一个元素20的位置
7
count()获得指定元素在列表中出现的次数

count()可以返回指定元素在列表中出现的次数。

>>> a = [10,20,30,40,50,40,30,20,10,20,30]
>>> a.count(20) #在该列表中元素20出现的次数
3
>>> a.count(30) #该列表中元素30出现的次数
3
len()返回列表长度

len()返回列表长度,即列表中包含元素的个数。

>>> a =[10,20,30,40]
>>> len(a)
4
成员资格判断

判断列表中是否存在指定的元素,我们可以使用 count()方法,返回 0 则表示不存在,返回大于 0 则表示存在。但是,一般我们会使用更加简洁的 in 关键字来判断,直接返回 True或 False。

>>> a = [10,20,30,40,50,60,50,40,30,20,10]
>>> 20 in a
True
>>> 30 in a
True
>>> 100 in a
False
>>> 100 not in a
True
>>> 30 not in a
False
37 切片操作

切片 slice 操作可以让我们快速提取子列表或修改。标准格式为:
[起始偏移量 start:终止偏移量 end[:步长 step]

典型操作(三个量为正数的情况)如下:

其他操作(三个量为负数)的情况:

>>> a = [10,20,30,40,50]
>>> for x in a:
	print(x)

	
10
20
30
40
50
>>> for x in a:
	print(x,end='#')

	
10#20#30#40#50#
38 复制列表所有的元素到新列表对象

如下代码实现列表元素的复制了吗?

>>> list1 = [10,20,30]
>>> list2 = list1
>>> id(list1)
2804376725184
>>> id(list2)
2804376725184

只是将 list2 也指向了列表对象,也就是说 list2 和 list2 持有地址值是相同的,列表对象本
身的元素并没有复制。
我们可以通过如下简单方式,实现列表元素内容的复制:

>>> list1 = [10,20,30]
>>> list2 = []+list1
>>> list2
[10, 20, 30]
>>> id(list1)
2804409574592
>>> id(list2)
2804406415424
列表排序 修改原列表,不建新列表的排序
>>> a = [30,10,40,20]
>>> id(a)
2043738122048
>>> a.sort()	#默认是升序排列
>>> a
[10, 20, 30, 40]
>>> a.sort(reverse = True)	#默认是降序排列
>>> a
[40, 30, 20, 10]
>>> import random	#随机方法
>>> random.shuffle(a)	#将列表中的元素随机洗牌
>>> a
[30, 20, 40, 10]
建新列表的排序

可以通过内置函数 sorted()进行排序,这个方法返回新列表,不对原列表做修改。

>>> a = [20,10,30,40]
>>> id(a)
2464874901184
>>> a = sorted(a)	#默认升序
>>> a
[10, 20, 30, 40]
>>> id(a)
2464874898560
>>> b = sorted(a)
>>> id(a)
2464874898560
>>> id(b)
2464869641984
>>> c = sorted(a,reverse = True)  #降序
>>> c
[40, 30, 20, 10]
>>> id(c)
2464874900416

通过上面操作,我们可以看出,生成的列表对象b和c都是完全新的列表对象。

reversed()返回迭代器

内置函数 reversed()也支持进行逆序排列,与列表对象 reverse()方法不同的是,内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。

>>> a = [20,10,30,40]
>>> c = reversed(a)
>>> c

>>> list(c)
[40, 30, 10, 20]
>>> list(c)
[]

打印输出 c 发现提示是:list_reverseiterator。也就是一个迭代对象。同时,我们使用list©进行输出,发现只能使用一次。第一次输出了元素,第二次为空。那是因为迭代对象在第一次时已经遍历结束了,第二次不能再使用。

列表相关的内置函数汇总 max 和 min

用于返回列表中最大和最小值。

>>> a = [3,20,10,43,8]
>>> max(a)
43
>>> min(a)
3
sum

对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错.

>>> a = [3,20,34,10]
>>> sum(a)
67
39 二维列表

一维列表可以帮助我们存储一维、线性的数据。
二维列表可以帮助我们存储二维、表格的数据。

a = [
    ['姓名','年龄','工资','住址'],
    ['苏小坡', 23, 10000, '北京'],
    ['李小白', 21, 15000, '上海'],
    ['杜小牧', 19, 20000, '广州'],
    ]

for m in range(4):
    for n in range(4):
        print(a[m][n],end='t')
    print() #换行

output:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号