列表的一些常用操作符

比较操作符

逻辑操作符

连接操作符

重复操作符

当有多个元素时,默认是从第0个元素比较的

字符串比较的是每一个字符对应的ASCII码值的大小

什么是ASSII码?
是American Standard Code for Information Interchange缩写,美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。

我们知道字符串可以用“+”做拼接,用“*”复制若干次,在列表中也可以实现
expend()扩展列表会显得更为规范,而不用“+”,因为加号有一些操作是违规的,因为连接操作符加号不能实现添加新元素的操作

成员关系操作符

in

not in


in 和 not in 只能判断一个层次的成员关系,同break和continue只影响一层的循环的道理是一样的

**对于列表中的列表中的值我们该如何访问呢???**用两个[]输入索引值即可

列表类型的内置函数

列表有多少小伙伴呢???用dir函数查询

count():此方法的作用是统计每个元素在列表中出现的次数

列表的内置方法要用点“.”表示范围

index():该方法可以限定查找的范围,即返回其参数在列表中的位置

  • 参数1:元素值
  • 参数2:范围起始
  • 参数3:范围终止

    list3.index(123,1,4):返回列表list3中元素123在1-3索引值范围内第一次出现的位置

reverse():此方法的作用是使整个列表原地翻转

sort():此方法是对列表元素进行排序,默认从小到大排,


如果需要从大到小进行排序呢?

  • 方法1:先调用sort()方法从小到大排,再用reverse()方法原地翻转
  • 方法2:sort()方法其实有3个参数:
    【1】参数1:func参数用于设置排序的算法
    【2】参数2:key参数用于设置排序的关键字,默认使用归并排序
    【3】参数3:reverse参数默认是False,如果将reverse参数改为True的话就会从大到小排序

关于分片拷贝的补充

  • 使用分片slice可以创建列表的拷贝
    Python的变量就像一个标签,就像一个名字一样,贴哪儿是哪儿,指哪儿打哪儿
    列表变量名的赋值只不过是引用的拷贝,如果你修改了列表中的元素,那么会影响到另外一个指向它的引用
    list6 = [4,5,3,6,8,1]
    list7 = list6[:]
    list8 = list6
    list7是list6的拷贝,而将list6赋值给list8,看起来效果是一样的,但对list6.sort()排序后list7依然是list6的拷贝,但list8随着list6顺序的变化而变化,所以不可以偷懒,要拷贝一个列表请用分片的方式
    即直接用=就是多了一个指向的标签

  • 在Python中,变量不是一个盒子,当赋值运算发生的时候,Python并不是将数据放在变量当中,而是将变量与数据挂钩,我们称之为引用,将一个变量赋值给另一个变量就是将一个变量的引用传递给另一个变量

  • 如果要得到两个独立的列表,还是需要用到拷贝

浅拷贝和深拷贝

浅拷贝

  • 1.调用列表的copy方法,copy方法拷贝的是整个列表对象,而不仅仅是变量的引用
  • 2.使用切片的语法实现

  • 浅拷贝处理一维列表是没有问题的,但是如果涉及到嵌套列表,就会出现新问题。浅拷贝只是拷贝了外层的对象,如果包含嵌套对象的话,那么拷贝的只是其引用,解决此问题需要用到深拷贝

深拷贝

  • 深拷贝要借助copy模块,该模块有两个函数,一个是copy,实现的是浅拷贝,另一个是deepcopy
  • deepcopy函数将原对象拷贝的同时,也将对象中所以引用的子对象一并进行了拷贝

Task

0. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案

>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)

会打印[1,2,3,4,5],此处是赋值,new随着old的变化而变化,上节课是分片拷贝

1. 请问如何将下边这个列表的’小甲鱼’修改为’小鱿鱼’?

list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]

用del删除,再用append添加

>>> list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
>>> del list1[1][2]
>>> list1[1].append('小鱿鱼')


小甲鱼的方法更简单:

list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list1[1][2][0] = '小鱿鱼'

2.要对一个列表进行顺序排序,请问使用什么方法?
list1.sort()

3. 要对一个列表进行逆序排序,请问使用什么方法?
list1.sort(reverse=True)
或者;

>>> 列表名.sort()
>>> 列表名.reverse()

4. 列表还有两个内置方法没给大家介绍,不过聪明的你应该可以自己摸索使用的门道吧:copy() 和 clear()
copy()方法和使用切片拷贝是一样的
clear()方法用于清空列表的元素,但要注意,清空列表仍然存在,只是变成一个空列表

5. 你有听说过列表推导式或列表解析吗?

没听过?!没关系,我们现场来学习一下吧,看表达式:

>>> [i*i for i in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

分别打印了0到9各个数的平方,然后还放在列表里边了

列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:

[有关A的表达式 for A in B]
例如

>>> list1 = [x**2 for x in range(10)]
>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

相当于

list1 = []
for x in range(10):list1.append(x**2)

请先在 IDLE 中获得下边列表的结果,并按照上方例子把列表推导式还原出来。

>>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

还原:

>>> list1 = []
>>> for x in range(10):if x % 2 == 0:for y in range(10):if y % 2 != 0:list1.append((x,y))


6. 活学活用:请使用列表推导式补充被小甲鱼不小心涂掉的部分

list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2 = ["4.阿迪达斯","2.李宁","3.鱼c工作室","1.耐克"]
for x in list1:for y in list2:if x[0] == y[0]:print(y + ":" + x[2:])
list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2 = ["4.阿迪达斯","2.李宁","3.鱼c工作室","1.耐克"]
list3 = [y + ":" + x[2:] for x in list1 for y in list2 if x[0] == y[0]]
for each in list3:print(each)


零基础入门学习Python(11)-列表(3)相关推荐

  1. 零基础入门学习Python 011列表:一个打了激素的数组2

    知识点总结 从列表中获取元素 通过元素的索引值(index)从列表中获取单个元素,注意:列表索引值从0开始的 利用中间值,把两者进行交换,x,y=2,7;temp = y;y=x;x=temp nam ...

  2. 零基础python必背代码-零基础入门学习python 96集全

    零基础入门学习python 96集全 第000讲 愉快的开始(视频+课件)xa0 第001讲 我和Python第一次亲密接触(视频+课件)xa0 第002讲 用Python设第一个游戏(视频+课件+源 ...

  3. 零基础学python pdf-笔记《零基础入门学习Python(第2版)》PDF+课件+代码分析

    通过自学编程,感觉到基础知识很重要,越到后面越能发现这一点,光记住是不行的,还要灵活运用,要多调试代码,计算机就是一个不断练习,不断遇到问题,解决问题的工种,要根据实际的业务能想到对应的语法,实际项目 ...

  4. 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版

    Python pdf(零基础入门学习Python)是一款功能强劲专业实用的Python电子书籍.想要零基础入门学习Python?那就快试试绿色先锋小编推荐的Python pdf最新版下载使用.由作者小 ...

  5. 零基础学python 视频_零基础入门学习PYTHON(第2版)(微课视频版)

    小甲鱼畅销图书重磅升级,针对Python 3.7,通过生动的实例,让读者在实践中理解概念,在轻松.愉快中学会Python! 本书提倡理解为主,应用为王.因此,只要有可能,小甲鱼(注:作者)都会通过生动 ...

  6. python dict 合并同类项_零基础入门学习Python,这13个Python惯用小技巧一定要收藏...

    原标题:零基础入门学习Python,这13个Python惯用小技巧一定要收藏 Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的 ...

  7. 零基础入门python小甲鱼-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  8. python零基础入门教程百度云-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  9. 小甲鱼python教程视频怎么样-小甲鱼零基础入门学习Python视频教程全套96集

    资源介绍 教程名称: 小甲鱼零基础入门学习Python视频教程全套96集 课程简介: xa0 xa0 Python具有跨平台特点,Python可以在各种不同类型的计算机上运行,Windows.MAC. ...

  10. 《零基础入门学习Python》学习笔记(1-25)

    参考:<零基础入门学习python>http://edu.csdn.net/course/detail/906?locationNum=1&fps=1&ref=srch&a ...

最新文章

  1. 数字下变频和数字上变频
  2. python2.7 print函数
  3. k8s 命令 重启_k8s 常用命令
  4. OpenJudge NOI 1.7 30:字符环
  5. c语言的数组在栈区还是,用数组实现栈的功能的C语言代码?
  6. react.js 给标识ref,获取内容
  7. kettle执行组件时为什么使用克隆对象
  8. docker容器笔记
  9. SosoApi使用手册
  10. 黑猫论坛实战免杀教程
  11. 使用screen恢复会话时出现There is no screen to be resumed matching错误解决办法
  12. 红帽linux云计算提供商,神州数码获得红帽云计算及服务供应商认证
  13. 关于拆项,有理函数积分,留数法
  14. 用精密减压阀控制空气采样泵气体压力
  15. 不限文章大小!英文文章的编码和解码(C语言,哈夫曼编码)
  16. 小学计算机打字比赛简报,育瑞实验小学打字比赛活动通知
  17. observation, reward, terminated, truncated, info = self.env.step(action) ValueError: not enough valu
  18. 用gd扩展调用imagegrabscreen截图,完全黑屏!允许服务与桌面交互没用!
  19. 如何检查 MDAC 版本
  20. 1秒找回你的童年,小霸王其乐无穷啊,免费领取!速度了!

热门文章

  1. 【JVM】肝了一周,吐血整理出这份超硬核的JVM笔记(升级版)!!
  2. 【图文讲解】TCP为啥要3次握手和4次挥手?握两次手不行吗?
  3. 看完这篇Exception 和 Error,和面试官扯皮就没问题了
  4. Java线程如何转储
  5. 京东程序员被同事吐槽:需求排期长拖黄业务,都研发的一些啥玩意
  6. 绩效面谈的细节,阿里巴巴是如何做的?
  7. 生态伙伴 | 小鹅通企学院入驻飞书,助力企业一键打造自己的企业大学
  8. 人力资源部如何运用OKR?看三大层面最新OKR模板
  9. vscode 远程linux 服务器开发
  10. java一个点向着另一个点移动_java – 在线性路径中从一个点移动一个对象