03Python List不得不知的操作之改、查
上一篇文章我们讲过,Python的List是一种内建的序列型数据结构,由一串元素组成。对于一个List型的对象,它由多个元素构成,对于这一组元素我们必须有方便的方法对它们进行各种增删改查操作才能更好使用它们。
我们已经讲过增、删两种操作了,这篇文章再来跟大家一起捋一捋改、查两种操作。
List操作之——改
其实上一篇文章里讲的增、删也算是对List的更改。我们在这里是借用数据库中常用的操作来学习List的操作,所以也借用了增、删、改、查这种说法,数据库中的改指的是对数据库中已有的记录进行更改。
(1)那如何更改List中已有的元素呢?有一种最简单、直接的办法:
>>> list1=[0,1,2,3,4]>>> list1[0]=1>>> list1[1, 1, 2, 3, 4]
上面的代码直接拿一个值粗暴的覆盖到List的某个索引处,将原来的值给挤开。
(2)除此之外呢,我们还可以很轻易的把一整个List给更改掉,像下面这样:
>>> list1[1, 1, 2, 3, 4]>>> list1=[1,2,3,4,5]>>> list1[1, 2, 3, 4, 5]
上面这串代码,也是很容易理解,相当于直接定义了一个新的list1把老的list1给拍死在沙滩上了。
(3)还有一种情况,会比较隐蔽的更改整个List。请看下面的代码:
>>> list1[1, 2, 3, 4, 5]>>> list2=list1>>> list2[0]=3>>> list1[3, 2, 3, 4, 5]
上面这段代码比较好玩了,本来我们有个list1,然后把它赋给list2,然后我们把list2[0]给改变了,然后再打印list1,发现list1[0],也被改变了。从这里看这个“=”赋值运算符是很强的一种赋值,就相当于我们把list1的那段空间也给了list2,就是用“=”号之后,list1和list2实际上是指向的同一个List的存储空间,即实质上是同一个List的两个标号而已。
(4)List还有一些改变的办法比较好玩,像下面这样:
>>> list1[3, 2, 3, 4, 5]>>> list1[1:3]=[8,8]>>> list1[3, 8, 8, 4, 5]
上面这串代码,做的事情就是把list1的[1:3]从索引为1(包含)到索引为3(不包含)这一段的List用后面新的List给替换下来。不要求后面这个list和切出来这一片list长度相同,所以这样做之后,list1的长度可能会被改变。
(5)List还有一个reverse的函数,可以将list翻转:
>>> list1[3, 8, 4, 5]>>> list1.reverse()>>> list1[5, 4, 8, 3]
其实,你能想到的任何对List的更改操作几乎都是可以实现的,比如我们可以直接用sort()来对List进行排序。只是有些更改操作我们要稍微借助一些技巧,写多几条命令。作为入门教程的文章就先不写,等后面写Python进行数据挖掘的时候再跟大家一起讨论。
List操作之——查
大家想一想,我们查一串东西我们会查哪些呢?我觉得,无非是从两个角度来查它:(1)把这个List当成一个整体,我们只查看它外面的属性,好比list的长度啊;(2)我们把List掰开,看看List里面是怎样的,比如我们想在List中查找某个值的索引。
(1)简单的,我们可以把List作为一个参数调用len、max、min之类的函数来查看这个List长度、最大值、最小值之类的属性。比如:
>>> list1[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]>>> len(list1)10>>>max(list1)4>>> min(list1)1
(2)我们可以直接用list的索引中括号中输入不同的东西,查看List对应索引上的值是什么。比如:
>>> list1[:] #查看list1所有的元素[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]>>> list1[0]#查看list1索引为0的元素1>>> list1[-2]#查看list1的倒数第2个元素(是从1开始倒数,不是从0开始倒数)4>>> list1[2:5]#查看list1的索引2-4s上的元素[2, 3, 3]
在上面的代码中,大家要注意有些地方返回的是一个元素值,有些返回的是一个List。
(3)我们还可以调用List的一些方法来查看List里面的一些东西。比如:
>>> list1[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]>>> list1.index(2) #查看2在list1中的索引,返回的是list1中第一次出现的那个2的索引1>>> list1.count(4)#查看4在list1中出现的次数4
好了,关于Python的List数据结构就讲这么多把,下一篇文章我们一起来看看Python构之String。
- 让VIM支持Python2 by update-alternatives
- Angular中ngCookies模块介绍
- 如何让jboss eap 6.2+ 的多个war应用共享 jar 包?
- scala 学习笔记(07) 一等公民的函数
- 让BASH,VIM美美的Powerline
- 极品三数666.cn易主,价格让人大惊!
- ui-router中使用ocLazyLoad和resolve
- rpc框架之 avro 学习 2 - 高效的序列化
- rpc框架之HA/负载均衡构架设计
- 使用Docker-Docker for Web Developers(2)
- 打造高效前端工作环境-tmuxinator
- 在Linux Mint上安装node.js和npm
- JS魔法堂:再识Number type
- (cljs/run-at (JSVM. :browser) "搭建刚好可用的开发环境!")
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Angular input控件的click事件表达式如何被转换成JavaScript函数
- Angular input控件的click事件响应处理的调用上下文
- SAP Spartacus cms.service.ts getComponentData
- toString如何转json
- DàYé玩转数据战略Step By Step
- 突发!Windows XP 源代码泄露
- SAP Spartacus打印Occ endpoint请求的url
- 线上发生死锁异常了,该怎么办
- jQuery 元素操作
- jQuery 文本属性值
- jQuery 属性操作
- 方老师聊Nginx知识点
- 《Java从入门到失业》第五章:继承与多态(5.1-5.7):继承
- 【赵渝强老师】Flink的DataSet算子
- Node.js 案发现场揭秘 —— 文件句柄泄露导致进程假死