前言: 好久不见,突然发觉好久没写博客了,最近迷上了 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

傻瓜式学Python3——列表的更多相关文章

  1. webpack之傻瓜式教程

    接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...

  2. 傻瓜式操作Nagios

    傻瓜式操作Nagios   不少接触Nagios的朋友都会觉得安装配置困难,应用在企业网中所花费的时间成本很高,下面通过OSSIM来搞定它把. 为了节省资源,首先在淘汰的机器上安装一个低版本的OSSI ...

  3. .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

    作者:依乐祝 原本链接:https://www.cnblogs.com/yilezhu/p/9947905.html 引子 为什么写这篇文章呢?因为.NET Core的生态越来越好了!之前玩转.net ...

  4. JVM源码---教你傻瓜式编译openjdk7(JAVA虚拟机爱好者必看)

    LZ经过一个星期断断续续的研究,终于成功的搞定了JDK的成功编译与调试.尽管网络上的教程也有不少,包括源码中也有自带的编译步骤说明,但真正自己动手的话,还是会遇到不少意料之外的错误. 为了方便各位猿友 ...

  5. [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

    [翻译] C# 8.0 新特性 2018-11-13 17:04 by Rwing, 1179 阅读, 24 评论, 收藏, 编辑 原文: Building C# 8.0[译注:原文主标题如此,但内容 ...

  6. webpack之傻瓜式教程及前端自动化入门

    原文地址:https://www.cnblogs.com/liqiyuan/p/6246870.html 接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天 ...

  7. python009 Python3 列表

    Python3 列表序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是 ...

  8. PxCook+photoshop实现傻瓜式切图(推荐小白使用)

    确定需求 刚入门前端的小伙伴经过一个阶段的学习,已经准备小试牛刀了.但看到设计师给出的psd图,又头疼了,天啊撸,怎么办,我不会切图啊.今天我就带领小白学习傻瓜式切图.包学包会.( ̄▽ ̄)" ...

  9. 5分钟搭建wordpress个人博客网站——宝塔傻瓜式部署,无坑系列,附赠主题和md插件[2021-12-31]

    一.前言 自从买了服务器,小编已经马不停蹄的学了两天服务搭建的知识,问了很多大佬,快速搭建自己的博客网站.有四种方式,我在这里全部分享给大家.自己已经搭建好,欢迎大家过来看一下,给你提供个思路哈! 小 ...

随机推荐

  1. 大话CNN

    这几年深度学习快速发展,在图像识别.语音识别.物体识别等各种场景上取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动 ...

  2. 爬虫解析:XPath总结

    1.加载 XML 文档 所有现代浏览器都支持使用 XMLHttpRequest 来加载 XML 文档的方法. 针对大多数现代浏览器的代码: var xmlhttp=new XMLHttpRequest ...

  3. linux系统的命令组与函数

    一.命令组 许多时候,我们在shell操作上,需要在一定条件下一次执行多个命令,也就是说,要么不执行,要么就全执行,而不是每次依序的判断是否要执行下一个命令.或是,需要从一些命令执行优先次顺中得到豁免 ...

  4. Oracle VM VirtualBox 部署CS devcloud2 开发环境

    Setting up (VirtualBox) 1. Get the new DevCloud 2.0 virtual appliance. The new image was created usi ...

  5. 怎样下载网页中的js文件?

    1.按下F12,会看到调试的界面,如下图所示,先点击最上面的Resources选项,Frames--(你想下载的网址)--Script,下面就是全部的js文件啦,网站的图片啊什么的都可以下载了.

  6. radio后的input框数据传递

    <input type="radio" name="limit_type" value="total">活动期间,每个手机号可抽 ...

  7. [SoapUI] Global Scripts For Reusability

  8. rest-framework-----url控制

    一:自定义路由(原始方式) from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^books/ ...

  9. Exception (1) Understanding Exception Handling

    When an exception is thrown, it cannot be ignored--there must be some kind of notification or termin ...

  10. Karma和Jasmine 自动化单元测试环境搭建

    最近初学AngularJS ,看到的一些教程中经常有人推荐使用Karma+Jasmine来进行单元测试.自己之前也对Jasmine有些了解,jasmine也是一个不错的测试框架. 1. karma介绍 ...