【python】python学习三 之 列表

前言

今天学列表

一、列表和创建列表
  • 列表:一个打了激素的数组
  • 数组的要求:所有放在一起的数据类型要一致

但由于python的变量没有数据类型,按照这个来说python是没有数组的

但是python提供了更为强大的列表
如果说把数组比作是集装箱,那么python的列表就像是一个工厂的仓库,所有可以具象化的东西都可以往里面扔

我们首先来看一下怎么创建一个列表
提供三种方式来创建列表

  1. 创建一个普通的列表
  2. 创建一个混合列表
  3. 创建一个空列表
    在这里插入图片描述
二、往列表中插入数据

然后来看一下怎么往数组中插入数据
首先教一个方法,就是append方法,我们来尝试一下

参数描述
Append()Member.append()不能一次加两个参数 ,只有一个参数
Extend()Member.extend([‘dog’,‘cat’]),注意 extend方法也是一个参数。extend的原理是用一个列表来扩展另一个列表,也就是说我们要在一个列表里把他们扩展进去。(extend可以把两个列表相连)
Insert()但发现没刚刚都是在列表末尾加,那现在讲个可以放位置的。他有两个参数 insert(在某个位置插入,插入的数据) 注意,是从0开始的(因为第一个数就是0)

在这里插入图片描述
append和extend都只有一个参数,append的参数是一个准备插入列表的元素。
而extend方法是一个列表,使用一个列表来扩展另一个列表。而insert比较特殊,它有两个参数,第一个参数是带索引位置的索引值,第二个参数是准备插入的元素
有个注意的点,就是python有关涉及到索引值都是从0还是算起,而不是1

三、从列表中获取元素

跟数组一样,我们可以通过元素的**索引值(index)**从列表中获取单个元素。

注意:列表的索引从0开始
在这里插入图片描述

四、从列表删除元素
方法描述
remove()用remove你不需要知道这个元素在列表中的哪个位置,只需要知道这个元素具体的值就可以了 比如remove(‘huahua’)(如果有两个相同的元素,默认删除从左往右遇到的第一个)
del这不是个方法,是一个语句 del member[1] 还可以把整个列表删了 del member
pop()pop的数据列表实际上是根据栈来数据存储的,pop方法是从列表中取出最后一个元素,然后返回给你

在这里插入图片描述
在这里插入图片描述

五、列表的分片

再来看一下列表分片(splice)
在这里插入图片描述
用一个冒号隔开,标志着索引值1到3(左闭右开),所以cat不会被取到
这个只是复制一个一样的列表出来,原列表并没有任何改变

还可以简写:
在这里插入图片描述
那如果两边都不写呢,当然也可以,这样得到的是一个对member的拷贝

member[:]

在这里插入图片描述

六、列表与操作符

列表的一些常见的操作符,和字符串其实用法一样
我们还是以一个实例来给大家展示一下

操作符描述
比较操作符在这里插入图片描述 当列表中有多个元素比较第一个,然后返回TRUE or False
逻辑操作符在这里插入图片描述
连接操作符我们知道字符串可以用加号做拼接 可以用乘号复制若干次在列表也可以实现在这里插入图片描述是不是跟extend很像,但是要注意这个不能做一些添加的操作在这里插入图片描述
因为加号两边的类型要一致才可以做拼接 所以添加元素到元组是用什么方法,希望大家还记得 append() extend() insert()
重复操作符*在这里插入图片描述在这里插入图片描述
成员关系操作符In ,not in (事实上,我们在看for循环的时候就认识他了)在这里插入图片描述在这里插入图片描述
要注意层次,in和not in只能判断一个层次的元素是否存在在这里插入图片描述

那我们之前讲了怎么访问一个列表中的一个值,是不是通过索引,那我们要怎么访问一个列表中的一个列表中的值呢?
那这其实就和二维数组差不错,用两个框框
在这里插入图片描述

七、列表的内置方法

dir(list) 我们看一看一下属于列表的内置方法
在这里插入图片描述
可以用列表.内置方法使用,比如count()
在这里插入图片描述

还有index() 查看索引
在这里插入图片描述
还有指定范围看index()

还有一个是reverse()
在这里插入图片描述
还有个很重要的是sort():她的话是以一个指定方式对列表的成员进行排序
默认是的话是从小到大进行排序
在这里插入图片描述

那要从大大小怎么办?---->先用sort()再用reverse()
在这里插入图片描述
除此之外,其实sort有两个参数
sort(func,key),关于函数 这里先不讲

或者,这样也可以
在这里插入图片描述

再看一下之前的切片的复制和拷贝有什么不一样
在这里插入图片描述
用id(list几)看一下内存地址,地址一样变化也跟着一样
在这里插入图片描述

理解:
我们之前是不是说变量就像给他贴上标签一样,那这里直接等于,就代表着是再给他贴上一个标签,而如果是用分片的方法进行拷贝,则是在实实在在的拷贝

理解:
(比如 a=1 这个变量不是告诉你a =1
而是在内存中生成一个1然后用a来命名它)

建议:
所以,我们说有些懒是不能偷的,像列表之间不要用加号,要用extend方法,像等号,这种明明确确要拷贝的话,就用分片的方法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值