一时兴起今天又回过头来补一下列表和元组,先来说说列表哈,列表其实是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. bootstrap中的模态框(modal,弹出层)

    默认的modal示例: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...

  2. Window下Tomcat单机部署多应用

    1. 新增tomcat相关环境变量 如上图,有两个tomcat,tomcat1和tomcat2 2.修改catalina.bat 文件 第一个tomcat不变 第二个tamcat的catalina.b ...

  3. python编码encode decode(解惑)

    关于python 字符串编码一直没有搞清楚,今天总结了一下. Python 字符串类型 Python有两种字符串类型:str 与 unicode. 字符串实例 # -*- coding: utf-8 ...

  4. regasm 无法定位输入程序集

    c# 写的DLL是32位的,在64位机器上注册时提示 无法定位输入程序集 方法1: 使用绝对路径: "%windir%\Microsoft.NET\Framework\v2.0.50727\ ...

  5. DS图遍历--深度优先搜索

    DS图遍历--深度优先搜索 题目描述 给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点0开始 注意:图n个顶点编号从0到n-1 代码框架如下: 输入 第一行输入t,表示有t个测试实例 第二行输入n, ...

  6. SVM清晰讲解——线性可分问题

    转载作者:liangdas 引言: 1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于 ...

  7. 网页如何检查浏览器是否安装flash插件

    如果页面需要加载flash插件并且需要提示用户flash下载,这里有个官方很好的js文件只要引用就可以实现 //v1.7 // Flash Player Version Detection // De ...

  8. css 规则中两个类连在一起是什么意思?

    原文地址:http://www.cxybl.com/html/wyzz/CSS/20120601/27374.html 比如: .c1.c2 { text-decoration:underline; ...

  9. Underscore.js(1.9.1) 封装库

    // Underscore.js 1.9.1// http://underscorejs.org// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and ...

  10. k8s service网络

    资源 从整体来看,Kubernetes集群是由很多由JSON或者YAML定义的‘资源’组成,我个人比较推崇使用YAML写配置,因为它读写都很容易,同时还支持注释. 在Kubernetes中启动一个应用 ...