目录

定义和使用列表

列表的运算符

列表元素的遍历

列表的方法

元素位置和次数

元素排序和反转

定义和使用列表

在Python中,列表是由一系元素按特定顺序构成的数据序列,这样就意味着定义一个列表类型的变量,可以保存多个数据,而且允许有重复的数据。

跟上一课我们讲到的字符串类型一样,列表也是一种结构化的、非标量类型,操作一个列表类型的变量,除了可以使用运算符还可以使用它的方法。items1 = [10,20,30,40,50,60]

items2 = [70,80,90]

在Python中,可以使用[]字面量语法来定义列表,列表中的多个元素用逗号进行分隔,代码如下所示。

除此以外,还可以通过Python内置的list函数将其他序列变成列表。准确的说,list并不是一个函数,而是创建列表对象的构造器items1 = list(range(1, 10))

print(items1) # [1, 2, 3, 4, 5, 6, 7, 8, 9]

items2 = list('hello')

print(items2) # ['h', 'e', 'l', 'l', 'o']

需要说明的是,列表是一种可变数据类型,也就是说列表可以添加元素、删除元素、更新元素,这一点跟我们上一课讲到的字符串有着鲜明的差别。字符串是一种不可变数据类型,也就是说对字符串做拼接、重复、转换大小写、修剪空格等操作的时候会产生新的字符串,原来的字符串并没有发生任何改变。

列表的运算符

和字符串类型一样,列表也支持拼接、重复、成员运算、索引和切片以及比较运算,对此我们不再进行赘述,请大家参考下面的代码。items1 = [10,20,30,40,50,60]

items2 = [70,80,90]

print(f'items1:{items1},\nitems2:{items2}')

s1="1.列表的拼接"

print(s1.center(30,'*'))

items3=items1+items2

print(f'列表拼接items1=items2:{items3}')

s1="2.列表的重复"

print(s1.center(30,'*'))

items3+=items3

items5=items2*3

print(f'列表重复:items3+=items3:{items3},\nitems3*3:{items5}')

s1="3.列表的成员运算"

print(s1.center(30,'*'))

print(f'100是否在列表items1中:{100 in items1}')

print(f'80是否在列表items3中:{80 in items3}')

s1="4.获取列表元素长度(元素个数)"

print(s1.center(30,'*'))

size=len(items1)

print(f'items3:{items3}\nitems3的元素个数:{len(items3)}\n'

f'items2:{items2}\nitems2的元素个数:{len(items2)}')

print(f'items1:{items1},\nitems1的元素个数:{size}')

s1="5.列表的索引"

print(s1.center(30,'*'))

print(f'items1的第一个元素值:{items1[-size]}')

print(f'items2的第一个元素值:{items2[0]}')

print(f'items1的最后一个元素值:{items3[size-1]},{items1[-1]}')

s1="6.列表的切片"

print(s1.center(30,'*'))

print(f'items1的前五个:items1[:4]:{items1[:5]}')

print(f'items2的从第四个元素之后的元素:items2[4:]:{items2[4:]}')

print(f'items3从第三个元素开始间隔三个元素依次输出:items3[3::3]:{items3[3::3]}')

s1="7.列表的比较运算"

print(s1.center(30,'*'))

items5={"Spring","1010","abcd","白小鱼"}

items6={"Spring","1011","abc"}

items7={"abcd","白小鱼"}

items8={"Spring","1010","abcd","白小鱼"}

print(f"items5与items6是否相等:{items5==items6}")

print(f"items5>items7?:{items5>items7}")

print(f"items5与items8是否相等:{items5==items8}")

程序运行结果如下:

D:\装机软件\python\python.exe "D:/python code2020/untitled1/list.py"

items1:[10, 20, 30, 40, 50, 60],

items2:[70, 80, 90]

***********1.列表的拼接************

列表拼接items1=items2:[10, 20, 30, 40, 50, 60, 70, 80, 90]

***********2.列表的重复************

列表重复:items3+=items3:[10, 20, 30, 40, 50, 60, 70, 80, 90, 10, 20, 30, 40, 50, 60, 70, 80, 90],

items3*3:[70, 80, 90, 70, 80, 90, 70, 80, 90]

**********3.列表的成员运算***********

100是否在列表items1中:False

80是否在列表items3中:True

*******4.获取列表元素长度(元素个数)*******

items3:[10, 20, 30, 40, 50, 60, 70, 80, 90, 10, 20, 30, 40, 50, 60, 70, 80, 90]

items3的元素个数:18

items2:[70, 80, 90]

items2的元素个数:3

items1:[10, 20, 30, 40, 50, 60],

items1的元素个数:6

***********5.列表的索引************

items1的第一个元素值:10

items2的第一个元素值:70

items1的最后一个元素值:60,60

***********6.列表的切片************

items1的前五个:items1[:4]:[10, 20, 30, 40, 50]

items2的从第四个元素之后的元素:items2[4:]:[]

items3从第三个元素开始间隔三个元素依次输出:items3[3::3]:[40, 70, 10, 40, 70]

**********7.列表的比较运算***********

items5与items6是否相等:False

items5>items7?:True

items5与items8是否相等:True

Process finished with exit code 0

由于列表是可变类型,所以通过索引操作既可以获取列表中的元素,也可以更新列表中的元素。

对列表做索引操作一样要注意索引越界的问题,对于有N个元素的列表,正向索引的范围是0到N-1,负向索引的范围是-1到-N,如果超出这个范围,将引发IndexError异常,错误信息为:list index out of range。

列表元素的遍历

如果想逐个取出列表中的元素,可以使用for循环的,有以下两种做法。

items = ['Python', 'pluto', '卡戎', '白小鱼']

for index in range(len(items)):

print(items[index])

items = ['java', '萌萌', '江火似流萤', 'Spring']

for item in items:

print(item)

D:\装机软件\python\python.exe "D:/python code2020/untitled1/b遍历.py"

Python

pluto

卡戎

白小鱼

java

萌萌

江火似流萤

Spring

Process finished with exit code 0

“掷色子统计每个点数出现次数”的代码。

import random

将一颗色子掷6000次,统计每个点数出现的次数。这个任务对大家来说应该是非常简单的,我们可以用1到6均匀分布的随机数来模拟掷色子,然后用6个变量分别记录每个点数出现的次数,

import random

counters = [0] * 6#

print(counters)

for i in range(6000):#范围从1~6000

face = random.randint(1, 6)

counters[face - 1] += 1

for face in range(1, 7):

print(f'{face}点出现了{counters[face - 1]}次')

上面的代码中,我们用counters列表中的六个元素分别表示1到6的点数出现的次数,最开始的时候六个元素的值都是0。接下来用随机数模拟掷色子,如果摇出1点counters[0]的值加1,如果摇出2点counters[1]的值加1,以此类推。

列表的方法

和字符串一样,列表类型的方法也很多,下面为大家讲解比较重要的方法。

item=["生气","喜悦","嗔怒","清冷"]

print(f'item:{item}')

item.append("多情")#使用append方法在列表尾部添加元素

print(f'item:{item}')

item.insert(2,"悠然")#使用insert方法在列表指定索引位置插入元素

print(f'item:{item}')

item.remove("嗔怒")# 删除指定的元素

print(f'item:{item}')

item.pop(0)# 删除指定索引位置的元素

print(f'item:{item}')

# 清空列表中的元素

item.clear()

print(f'item:{item}')

D:\装机软件\python\python.exe "D:/python code2020/untitled1/y元素列表.py"

item:['生气', '喜悦', '嗔怒', '清冷']

item:['生气', '喜悦', '嗔怒', '清冷', '多情']

item:['生气', '喜悦', '悠然', '嗔怒', '清冷', '多情']

item:['生气', '喜悦', '悠然', '清冷', '多情']

item:['喜悦', '悠然', '清冷', '多情']

item:[]

Process finished with exit code 0

需要提醒大家,在使用remove方法删除元素时,如果要删除的元素并不在列表中,会引发ValueError异常,错误消息是:list.remove(x): x not in list。

在使用pop方法删除元素时,如果索引的值超出了范围,会引发IndexError异常,错误消息是:pop index out of range。

从列表中删除元素其实还有一种方式,就是使用Python中的del关键字后面跟要删除的元素,这种做法跟使用pop方法指定索引删除元素没有实质性的区别,

item=["生气","喜悦","嗔怒","清冷"]

del item[1]

print(f'del :item:{item}')

del :item:['生气', '嗔怒', '清冷']

但后者会返回删除的元素,前者在性能上略优(del对应字节码指令是DELETE_SUBSCR,而pop对应的字节码指令是CALL_METHOD和POP_TOP)。

元素位置和次数

列表类型的index方法可以查找某个元素在列表中的索引位置;因为列表中允许有重复的元素,所以列表类型提供了count方法来统计一个元素在列表中出现的次数。请看下面的代码。

tems = ['Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python']

# 查找元素的索引位置

print(items.index('Python')) # 0

print(items.index('Python', 2)) # 5

# 注意:虽然列表中有'Java',但是从索引为3这个位置开始后面是没有'Java'的

print(items.index('Java', 3)) # ValueError: 'Java' is not in list

items = ['Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python']

# 查找元素出现的次数

print(items.count('Python')) # 2

print(items.count('Go')) # 1

print(items.count('Swfit')) # 0

元素排序和反转

列表的sort操作可以实现列表元素的排序,而reverse操作可以实现元素的反转,代码如下所示

item=["pluto","sunny","spring"]

print(item)

item.sort()

print(item)

item.reverse()

print(item)

['pluto', 'sunny', 'spring']

['pluto', 'spring', 'sunny']

['sunny', 'spring', 'pluto']

Process finished with exit code 0

课程链接:https://github.com/jackfrued/Python-Core-50-Courses/blob/maste

python列表查找元素用什么运算符_【Python】第012课,定义和使用列表,列表的运算符,列表元素的遍历i,列表的方法,元素位置和次数,元素排序和反转。...相关推荐

  1. python创建字典和包的区别_[Python]-10-模块与包

    引言 这篇文章介绍python中模块和包的概念. 文章目录 0×1.如何导入模块 简单的讲,模块就是可以扩展python功能的一些对象的集合,可以是类,方法,或者简单的数值对象,他们被存放在一个或多个 ...

  2. python中from import*的*什么意思_[Python]Python中的import和from import

    在python用import或者from...import来导入相应的模块. 模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序 ...

  3. 猿创征文|python二分查找解密 青少年编程电子学会python编程等级考试三级真题解析2021年03月

    目录 python二分查找解密 一.题目要求 1.编程实现 2.输入输出 3.评分标准</

  4. python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...

    词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...

  5. python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...

    1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...

  6. python调用百度地图画轨迹图_[python]百度地图API,正/逆地理编码,路线规划接口的调用,实现输出出行的距离和......

    [Python] 纯文本查看 复制代码''' 文件名:L17.py 作者:小饭团 创建时间:2019年1月11日15:17:03 文件描述:调用Web服务API接口,百度地图路线规划 正/逆地理编码 ...

  7. python实现文件上传和下载_[Python] socket实现TFTP上传和下载

    一.说明 本文主要基于socket实现TFTP文件上传与下载. 测试环境:Win10/Python3.5/tftpd64. tftpd下载:根据自己的环境选择下载,地址 :http://tftpd32 ...

  8. python如何爬取网站所有目录_[python] 爬取网站所有的URL

    运行python脚本,最终程序目录下会是这样: result.txt中保存所有的URL 文件夹sh.neusoft.com中保存爬虫得到的所有网页 main.py的源代码如下 # -*- coding ...

  9. python计算在月球的体重程序_# Python程序语言设计基础(第二版)程序练习题

    Python程序语言设计基础(第二版)程序练习题 3.1 重量计算,月球上物体的体重是在地球上的16.5%,假如你在地球上每年增长0.5kg,编写程序输出未来10年你在地球和月球上的体重状况. cur ...

  10. python怎么让py里面逐行运行_[python]开发环境bug(求助)

    之前写的整理文件格式脚本就出现过这个问题,今天特地做了个测试,本来想弄清出错的位置现在彻底懵了,求大佬解释. 0.用一个简单的python程序生成一个短的特殊文本. test = open('','w ...

最新文章

  1. 科达正式发布PPP业务支持计划
  2. python数据预测模型算法_如何对时间序列预测问题计算基准预测(python)
  3. 命令行下操作常用语句
  4. eclipse android 分包,eclipse中multidex的使用
  5. 社会治理智慧平台、联动指挥、综合执法、数据汇集、数据研判、智慧政务、图表模板、大屏、可视化、智慧工厂、办公、能源、医疗、校园、自动化综合车间大屏、车间数据、人力资源、员工考核、医院、rp原型
  6. Selenium自动化框架:数据驱动、关键字驱动和混合
  7. 程序员求职之道(《程序员面试笔试宝典》)之民间的企业排名的可信度到底有多大?...
  8. 那些年出现的遇到的 错误 VS (长期)
  9. python爬取喜马拉雅vip音频安卓_Python爬虫:爬取喜马拉雅音频数据详解
  10. JeeSite快速开发平台v4.2.2源码+在线代码生成功能
  11. 关于Echarts官网httpsecharts.apache.org打不开的解决方案
  12. jolog扫地机器人怎么样_扫地机器人怎么样?
  13. docker update修改内存/cpu
  14. [转载] 网络游戏程序员须知 调试多人联机游戏
  15. CSS3表单设计–复古
  16. Thrift 在Windows环境下的编译与简单C++应用
  17. 翟佳:高可用、强一致、低延迟——BookKeeper的存储实现
  18. 流媒体技术原理与应用
  19. 【学习笔记】消息队列之MQ的基本概念
  20. 链克袋鼠Linker导入链克账户教程

热门文章

  1. 2,2,2,2-((ethene-1,1,2,2-tetrakis(benzene-4,1-diyl))tetrakis-(oxy)tetraacetic acid 2,2,2,2-四(乙烯基-苯氧
  2. aptana手动配置python环境_Aptana Studio 3配置Python开发环境图文教程
  3. 面试题之__ 星际穿越(java实现)
  4. MySQL 数据库安全管理
  5. CentOS7离线安装Cloudera Manager 5.14.1
  6. Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式
  7. 好好说话之hijack retaddr
  8. html+css发光字体
  9. VMware Workstation下载及安装
  10. 企业微信 php sdk,thinkphp5.0集成企业微信SDK