一时兴起今天又回过头来补一下列表和元组,先来说说列表哈,列表其实是python最经常用到的数据类型了,不仅经常用还很强大呢,这个跟C语言里面的数组是类似的,列表当然也可以增删改查,不过我可没打算用之前字典的方式给大家讲解,我给大家讲解下列表的常用方法就好了。

1、首先我先讲下怎么创建一个列表,你看下方list1是创建了一个空列表,list2是创建了一个有值列表。

 

2、list1.append(),这个方法是在列表末尾追加,看下面例子:

记得append()方法是列表末尾追加

这种末尾追加虽然可以加进去,但是有时候我想中间插入咋办呢?下面这个方法就是满足这个需求滴

3、list1.insert(index,element),insex为索引号,也就是第几位,位置是从0开始的,基本上语言的第一位索引都是0,element是自己想要加入列表的值,啥值都行,加列表都行,看实例如下:

当然那你说我只知道列表有个值,而且我想将新的值加入到列表那个值的后面,那这咋办呢?是不是我们得先将那个值得索引打出来,你才能根据索引插入呢?

4、list1.index(value),value就是在字典里的值,返回当前value的索引号(只返回找到的第一个),如果你输入的是列表中不存在的那么程序就会报错,实例如下:

大家有没有发现,用insert加入列表的话依旧还是列表,那我想将一个列表的值加入另一个列表但是加入后又不以列表的形式显示咋搞呢?insert加入列表如下:

5、list1.extend(list2),在列表末尾一次性添加列表的多个值;修改了被扩展序列,而连接操作会返回全新的列表。

list1就变成了两个列表的和了,记住新列表不会去重的。

  能加便能删,下面介绍下列表删除的方法

6、list1.pop(index),移除列表中的一个元素;默认是最后一个。是列表操作中唯一一个,既能修改列表,又能返回元素值的列表方法。

记住pop后面是跟索引号的 ,索引号不存在的话会报错,不填索引号的话就是删除最后一个

通过索引去移除列表元素固然好,但是有时候你只知道想要移除的元素并不知道元素位置,如果用index的话又显得很累赘,因此列表又多了

7、list1.remove(element),移除列表中某个值的第一个匹配项。

看,移除了第一个hello,但是如果我们想移除第二个或者是全部hello呢?

这里先讲下全部移除吧,目前我想到的方法就是,依旧用remove这个方法,我们可以先统计下想要删除的元素在列表中有多少,然后用个for循环执行刚刚统计那么多次不就删除了吗?不多说了贴个代码给大家看下(count方法看下面第8):

是不是hello全部被删了?当然可能还有更好的,目前这使我想到的,欢迎大家指教哈,那么如果我想删除第二个或者第三个呢?琢磨了下自己写了个粗略版的,以后学深了再修改为更好的写法。

def delete_element(list1,element,num):
delete_num = 0
if element in list1:
if num == 'alldelete':
for i in range(list1.count(element)):
list1.remove(element)
else:
num = int(num)
while num:
print(num)
delete_num = list1.index(element,delete_num)
delete_num += 1
list1.pop(delete_num-1)
else:
print("你输入的值不在列表里面!") list1 = [1, 2, 'hello', 3, 4, 'hello', 'word', 'hello']
element = input("请输入你想要删除的元素:")
num = input("请输入你想要删除第几个元素:(alldelete为全部删除)")
delete_element(list1,element,num)
print(list1)

8、list1.count(element),统计元素在列表中出现的次数

当然你除了一个一个清除之外还可以一次性清除列表所有元素,用clear就行了,这个跟字典的方法类似

9、list1.clear(),这个就不演示了,因为作用很明显,就是清空列表的值,但是列表还在的,这个跟字典的del可不同喔,只是情况列表内容呦,并未清除对象。

10、list1.copy(),这个你记住是复制一个副本,原值和新复制的变量互不影响,与=不同,=是对象引用而已。

  上面说了那么多列表的方法,接下来呢说下列表的排序,这个用起来可能相对麻烦点,也许真的是!

11、list1.sort(key=None, reverse=False),这个是列表正向排序,该方法没有返回值,下面是简单排序,大家看下,这是最简单的用法,参数默认都为None。

接着是较为复杂的用法,下面是以列表中每一个元素的第二位进行排序。

既然说到了列表的sort那就不得不提到python本身支持的函数sorted,其实一般用sorted比较多,因为更加灵活些,下面介绍用法:

sorted(iterable[, key][, reverse]) ,sorted的第一个参数是一个迭代器,第二个参数是用来排序的key,第三个参数的排序数序:正序还是倒序 ,该方法返回列表

记得列表的sort是改变原列表的,而sorted方法是不改变原列表的。

刚刚使用列表正向排序,然后key也就是排序的规则是abs绝对值,因此 排序是图中所示。

默认reverse是Flase,如果写成True就变成了反向排序,看下面的结果就与刚才相反了。

12、list1.reverse(),反向列表中元素,该方法没有返回值,看个例子就知道了

就是把列表反过来即可

好了,上面讲述了关于列表的方法,下面接着来讲下元组吧,Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

1、元组的创建,看下面的例子,创建元组可以直接tup1 = (),如果元组只有一个值时,又想创建为元组记得在元素后加个逗号,

元组方法比较少,因为不能修改,只有count和index

2、tup1.count(element)和tup1.index(element),这两个和列表差不多我就不多说了,给个例子大家看下就好

3、列表与元组的相互转换,其实这个也没啥好说的,但是之后估计也会用到,所以还是给大家说下吧!继续看实例:

看,是不是很简单呢,就是用list和tuple即可

4、最后给大家讲解下切片吧,这个还是比较牛逼的,大家看看下面的实例是否能看懂呢?记得索引是从0开始,而且切片的序号是只要左界线不要右边界的喔

5、突然想起来好像还有点东西没说,虽然元组不能修改,但是也可以通过“+”进行元组连接,或者通过del进行元组删除操作。

零基础学习python_列表和元组(10-13课)的更多相关文章

  1. 零基础学习python_类和对象(36-40课)

    今天我们开始学习面向对象的知识咯,之前我对面向对象也学的懵懵的,因为感觉知道好像又不是特别清楚,接下来我们一起来学习类和对象吧.零基础的课程我都是看小甲鱼的视频学的,没基础的可以去这个网址下载视频学习 ...

  2. python 基础学习3 列表和元组 、字符串

    作为小白,坚持每日写学习记录,是督促坚持学习的动力, 今天主要是学习 列表和元组,列表是可以修改的,元组是不可变的.列表和元组的索引都是从0开始 列表可以修改, 可以对列表进行赋值,修改移除等各种方法 ...

  3. 零基础学习python_魔法方法(41-48课)(迭代器)

    接下来这个为啥要叫魔法方法呢,额,这个嘛我是跟小甲鱼的视频取的名字一样的,因为会讲比较多杂的东西,有... 魔法方法详细阅读地址:http://bbs.fishc.com/thread-48793-1 ...

  4. salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面

    上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息.当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:Pop Up Window弹出修改详情以 ...

  5. 零基础学习python_字符串(14-15课)

    今天回顾下我之前学习python的第一个对象——字符串,这个对象真蛋疼,因为方法是最多的,也是最常见的类型,没有之一... 内容有点多,我就搜了下网上的资料,转载下这个看起来还不错的网址吧:http: ...

  6. 零基础学习python_字典(25-26课)

    今天学到后面的知识,突然发现之前学习到的字典列表啥的都有点忘了,打算补一下之前学到的字典,到时候你看的时候,字符串.列表.字典.元祖这几个没啥顺序,刚开始学的时候了解下方法,当然你可以死记硬背下,后面 ...

  7. python基础学习笔记——列表及元组

    列表 列表的介绍  列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 列表的索引和切片 列表和字符串一样也拥有索引: lst = ['刘德华','周润发','周杰伦','向华强 ...

  8. 零基础学习python_生成器(49课)

    一个生成器函数的定义很像一个普通的函数,除了当它要生成一个值的时候,使用yield关键字而不是return.如果一个def的主体包含yield,这个函数会自动变成一个生成器(即使它包含一个return ...

  9. Python基础学习四 列表、元组、字典、集合

    列表list,用中括号“[ ]”表示 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一 ...

随机推荐

  1. NoHttpResponseException

    采用JMeter2.13做Http性能测试时,在高并发请求的情况下,服务器端并无异常,但是Jmeter端报错NoHttpResponseException (the target server fai ...

  2. Appium Desktop Inspector 安卓真机配置(Windows)

    本文是基于 Windows环境 通过Appium Desktop 测试真机,首先要确保测试机已经和电脑正确连接(将手机和电脑通过USB数据线连接,手机打开USB调试) 确认电脑与手机是否连接成功的方法 ...

  3. hadoop行业技术创新解决方案

    如今有很多公司都在努力挖掘他们拥有的大量数据,包括结构化.非结构化.半结构化以及二进制数据等,来探索对数据的深入利用. 大多数公司估计他们只分析了已有数据的12%,剩余88%还没有被充分利用.大量的数 ...

  4. hadoop append 追加文件错误

    java.io.IOException:Failed to replace a bad datanode on the existing pipeline due to no more good da ...

  5. php Pthread 多线程基本介绍

    我们可以通过安装Pthread扩展来让PHP支持多线程.   线程,有时称为轻量级进程,是程序执行的最小单元.线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,它与同属 ...

  6. SPI 核的寄存器空间

    SPI 核的寄存器空间 寄存器的地址与定义: 寄存器描述与配置: 复位寄存器: 控制寄存器: 状态寄存器: 数据发送寄存器: 在使用DTR之前,一定要经过复位处理. 对于DTR的操作中,首先写入com ...

  7. java小程序(课堂作业04)

    请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 1,设计思想: 先输入索要加密的字符串由于此程序比较基础所以只考虑大写字母,然后用toCharAr ...

  8. DOM 讲解

    DOM,全称documention,文档意思 ,就是把整个html文档当成一个对象来操作,里面有很多方法,如getElementByid(),getElementByid().innerText(); ...

  9. 【转】SQL Server日志文件过大 大日志文件清理方法 不分离数据库

    https://blog.csdn.net/slimboy123/article/details/54575592 还未测试 USE[master] GO ALTER DATABASE 要清理的数据库 ...

  10. Android兼容包之MultiDex

    一.MultiDex的产生背景 当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt.DexOpt的执行过程是在第一次加载Dex文件的时候执 ...