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

2128-施同学

发表文章数:16

首页 » Python » 正文

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]

典型操作(三个量为正数的情况)如下:
Python基础知识学习记录 2021——1006(列表(下))
其他操作(三个量为负数)的情况:
Python基础知识学习记录 2021——1006(列表(下))

>>> 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_reverseiterator object at 0x0000023DE5FE38B0>
>>> 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:
Python基础知识学习记录 2021——1006(列表(下))

未经允许不得转载:作者:2128-施同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python基础知识学习记录 2021——1006(列表(下))》 发布于2021-10-07

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录