一时兴起今天又回过头来补一下列表和元组,先来说说列表哈,列表其实是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. NET设计模式 第二部分 结构性模式(9):装饰模式(Decorator Pattern)

    装饰模式(Decorator Pattern) ——.NET设计模式系列之十 Terrylee,2006年3月 概述 在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特 ...

  2. 记一次揪心的MySQL数据恢复过程

    https://blog.csdn.net/poxiaonie/article/details/78304699 === 先说下背景,公司其中一个项目所有服务都部署在客户的机房内,机房较小,没有UPS ...

  3. MySQL 内存溢出

    select EVENT_NAME ,SUM_NUMBER_OF_BYTES_ALLOC from memory_summary_global_by_event_name order by SUM_N ...

  4. JavaScrip之BOM、DOM

    BOM 浏览器对象模型(BrowserObjectModel),可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关的动作. 使 Jav ...

  5. WebGL和ThreeJs学习6--射线法确定3D空间中所选物体

    一.在 threejs 中如何确定下图3D空间中鼠标点击位置的 object 对象? 二.射线法确定步骤及代码 //Three.js提供一个射线类Raycaster来拾取场景里面的物体.更方便的使用鼠 ...

  6. Windows 2003 下安装 SQL Server 2008 Express

    .NET Framework 3.5 Service Pack 1(完整程序包) https://www.microsoft.com/zh-cn/download/details.aspx?id=25 ...

  7. 黄聪:AngularJS如何在filter中相互调用filter

    调用方式如下: app.filter('filter2', function( $filter ) { return function( input) { return $filter('filter ...

  8. java线程之间的通信

    1.常用的方法 sleep() 该线程进入等待状态,不释放锁 wait() 该线程进入等待状态,释放锁 notify() 随机唤醒一个线程 notifyAll() 唤醒全部线程 getName() 获 ...

  9. selectedIndex 属性

    selectedIndex 属性可设置或返回下拉列表中被选选项的索引号. 注释:若允许多重选择,则仅会返回第一个被选选项的索引号. 语法 selectObject.selectedIndex=numb ...

  10. go语言学习--指针数组和数组指针

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...