热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

傻瓜式学Python3——列表

前言:好久不见,突然发觉好久没写博客了,最近迷上了Python无法自拔,了解了一下,Python简单易学,尤其是接触过java的人,入门Python更是门槛极低,本着学习记录的原则,

前言: 好久不见,突然发觉好久没写博客了,最近迷上了 Python 无法自拔,了解了一下,Python 简单易学,尤其是接触过java的人,入门 Python 更是门槛极低,本着学习记录的原则,边学习边记录,有利于梳理学习的成果,也有利于后期的复盘,所以今天开始 Python 学习之旅的第一篇博客,纯粹只是记录。

简单的语法定义就不记录了,从数据结构开始,程序最重要的就是操作数据,学习一门编程语言毫无疑问必须掌握它独有的数据结构。现在就从 列表 开始。

列表是 Python 编程中使用频率极高的数据结构,由一系列按特定顺序排列的元素组成,用 [] 表示,逗号分隔元素,类似 Java 中的 数组。列表被创建来存储数据,是动态的,随时可以对列表进行 crud 操作。由于列表包含多个元素,所以通常命名为复数形式,如 names,letters 等。

基本格式

1fruits = ["apple","bananer","oranger"]
2print(fruits)

访问列表元素

跟大多数编程语言一样,python列表数据的访问也是通过索引来获取,第一个元素从0开始,最后一个元素索引为列表的总数据和减一。python也提供可另一种特殊语法,可以直接使用-1作为索引获取最后一个元素,依次减一逆向获取数据。获取到列表数据之后 可以直接拿来进行任何操作。

1print(fruits[0])//获取第一个元素 `apple`
2print(fruits[-1])//获取最后一个元素`oranger`

修改列表元素

直接根据索引拿到对应位置的元素,对其重新赋值即可。

1fruits[0] = "watermelon"//修改第一个元素
2print(fruits)//重新打印列表

此时列表变更为:['watermelon', 'bananer', 'oranger']

增加元素

  • 调用 append() 方法在列表末尾添加元素
1fruits.append("Plum")
2print(fruits)

此时列表为:['apple', 'bananer', 'oranger', 'Plum']

  • 调用 insert()方法在指定索引出插入数据
1fruits.insert(1,"pear")//在索引为1处插入数据
2print(fruits)

此时列表为:['apple', 'pear', 'bananer', 'oranger']

删除列表中的数据

  • 知道索引的情况下,直接使用del删除数据
1del fruits[0]//删除第一个数据
2print(fruits)

此时列表为:['pear', 'bananer', 'oranger']

  • 调用pop()弹出列表列表数据,并返回弹出的数据。如果不传参数,默认弹出列表最后一个元素,若传入索引值,则弹出指定索引元素
1print(fruits.pop())//弹出最后一个元素,并打印
2print(fruits)
3print(fruits.pop(0))//弹出第一个元素,并打印
4print(fruits)

注意此时结果为:

1oranger
2['pear''bananer']
3pear
4['bananer']
  • 假如不知道元素的索引,而直到具体要删除的元素值,也可以直接调用 remove()方法删除,注意 删除之后,还可以继续使用该元素。
1fruits = ["apple","bananer","oranger","prea"]
2print(fruits)
3delete = "bananer"//删除的元素
4fruits.remove(delete)//调用方法删除指定元素值
5print(fruits)
6print(delete)//最后打印删除掉的元素

结果为:

1['apple''bananer''oranger''prea']
2['apple''oranger''prea']
3bananer

列表排序

  • 调用 sort() 对列表元素进行排序,默认是按自然顺序排序,如果要逆向排序,可传入 参数reverse=True,排序之后 列表的顺序就永久改变了。
1fruits = ["bananer","apple","oranger","prea"]
2print(fruits)
3fruits.sort()
4print(fruits)

结果为:

1['bananer', 'apple', 'oranger', 'prea']
2['apple', 'bananer', 'oranger', 'prea']
  • 假如我们想临时该表一下列表的顺序,可以使用 sorted()方法
1fruits = ["bananer","apple","oranger","prea"]
2print(fruits)
3print(sorted(fruits))
4print(fruits)

结果为:

1['bananer', 'apple', 'oranger', 'prea']
2['apple', 'bananer', 'oranger', 'prea']
3['bananer', 'apple', 'oranger', 'prea']

可见 列表顺序并没有改变。

使用 `reserse()` 方法,翻转列表元素

1  fruits = ["bananer","apple","oranger","prea"]
2  print(fruits)
3  fruits.reverse()//翻转列表元素
4  print(fruits)

结果为:

1['bananer', 'apple', 'oranger', 'prea']
2['prea', 'oranger', 'apple', 'bananer']

使用`len()`方法获取列表长度

1fruits = ["bananer","apple","oranger","prea"]
2print(len(fruits))

结果明显为4.

for 循环遍历列表

这跟 java中类似,格式为 for xxx in 列表名:,遍历获取到列表数据之后,我们可以对它进行任何操作

1fruits = ["bananer","apple","oranger","prea"]
2for fruit in fruits:
3    print(fruit)

结果为遍历打印出各个元素:

1bananer
2apple
3oranger
4prea

注意:python 中代码块是没有{}的,都是用4个空格缩进代表代码块,for循环,if 循环,while循环,方法体都是如此,编写代码时一定要注意缩进

快速组装数字列表

ranger()传入起始值和结束值可以按顺序产生一系列数字,再使用list()可以快速组装一定任意范围的数字列表

1numbers = list(range(1,6))//组装列表
2print(numbers)

结果:[1, 2, 3, 4, 5] 其实使用遍历也可以实现,但是这种方法更加便捷。

列表生成式

使用 [表达式 for 变量值 in range(x,x) if xxx] 只需一条语句就可以快速生成数值列表,其中表达式是遍历数值结果进行操作,还可以添加 if 条件。

1numbers = [x * x for x in range(1,6)]//求平方数值列表
2print(numbers)

结果为:[1, 4, 9, 16, 25] 这种表达式相当简洁,原先的好几行只需一行就能搞定。

使用切片裁剪获取子列表

使用 列表名[x:y] 裁剪获取对应索引区间的子列。假如省略起始值x,默认从0索引开始裁剪,假如省略结束值y,默认裁剪余下的所有元素。

1fruits = ["bananer","apple","oranger","prea"]
2print(fruits[0:2])

结果为:['bananer', 'apple']

至此,基本的列表操作差不多都总结完了,顺便记录一下元组

  • 列表中的数据是可变的,我们经常用它来存储可变的数据源
  • 元组跟列表一样也是用来存储数据源的,但是它存储的数据源是不可变的
  • 元组定义的格式也不一样,为(xxx,yyy,zzz).
  • 对于元组的操作,跟列表一样

小白式学 python3 第一篇总结,如有不妥之处,麻烦在评论区指出,谢谢~

参考:廖大教程https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

更多原创文章会在公众号第一时间推送,欢迎扫码关注 张少林同学

张少林同学.jpg张少林同学.jpg

推荐阅读
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • python教程分享cvtcolor函数的作用(cvtcolor函数出现未处理异常)
    在这篇文章中,我们将看到如何使用python中的opencv模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。pipinstallopencv-pythonpipinsta ... [详细]
  • 正常情况下,我们完成一件事情的过程中,可能会存在多种条件限制如:用户去ATM机取钱->输入取款密码->输入正确,取钱成功|输入错误,退卡。这样的情况下,需要根据不同的条件,执行不同的逻 ... [详细]
  • 准备gitanaconda3Step1:下载安装git这里是windows下git安装:需要注意的是在这里不选择第一个,要选择第二个,在windows下也可以。然后跟着默认选择就可 ... [详细]
  • python教程分享python单例模式之selenium driver实现单例
    一、使用装饰器实现单例二、web自动化driver实现单例模式2.1编写单例模式的装饰器2.2driver使用装饰器,实现单例模式2.3获取driver的实例,就是单例了三、在自动 ... [详细]
  • 关于ModuleNotFoundError: No module named 'urllib3'解决
    1.执行代码时报错错误信息:ModuleNotFoundError:Nomodulenamed'urllib3'错误截图:2.解决办法1通过如下命令安装urllib3模块:pipins ... [详细]
  • 环境准备—之—linux下安装python3和pip3
    转自上海悠悠https:www.cnblogs.comyoyoketangp10195102.html前言centos7自带有python,但是却是python2版本的 ... [详细]
  • python教程分享POC漏洞批量验证程序Python脚本编写
    编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程 ... [详细]
  • python教程分享python人物视频背景替换实现虚拟空间穿梭
    引言近期网上这位卖蜂蜜的小伙鬼畜挺火的,大家质疑背景造假,这里我就带着大家实现“背景造假”(ps:原视频小伙是在真实场景拍摄的)准备工作在实现该功能之前,我 ... [详细]
  • 如何在Python3中安装与使用Appium
    如何在Python3中安装与使用Appium?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习 ... [详细]
author-avatar
月夜极者_621_101
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有