python笔记系列-day5:列表 list

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fk002008/article/details/84749528

终于到了python的丰富地带了,列表,功能很强大

列表的概念 []

列表的类型是 list ,因此创建的变量类型不要覆盖了关键字 list,这个和之前的 bool , str ,int ,float 一样 起变量名字不要覆盖

列表的创建

列表的创建十分简单,使用[]就可以定义一个列表了

l=[1,"2",4.0 ,fractions.Fraction(1,3) ]

列表的访问

使用数组下标进行访问

从0 开始的数组下标

如果是负数的下标,那么就从-1开始数数,但是是从列表的末尾开始数的

简单记忆就是 -n 表示为 : 列表的长度-n,前面省略了列表的长度

注意 -0=0 ,始终都是第一个的

列表的切片

获取列表的部分数据,返回值是一个新的列表

list[m:n]

表示从位置 m 开始截取 n个元素,如果不够就到列表末尾即可结束

可以认为是 位置为 [m,n-1]位置上的元素

其中:

右切片如果为空: 表示为列表的长度

例如列表长度=5,那么:

len[3:5]=len[3:]

左切片如果为空: 表示为0,从头开始

len[:3] = len[0:3]

左右都为空,表示复制这个列表

len[:]

如果左右切片下标有负数,那么就按照之前的位置即可

可以认为 负数下标 -n = 列表长度-n

给列表增加新的元素 四种方法

方法一: 列表 + 列表

此时的 + 会创建一个新的列表

方法二: 使用列表的 append 函数添加元素,元素在末尾

方法三: 使用列表的 extend 函数 ,参数是可迭代的就可以

添加一个列表给当前列表效果如图循环调用了 列表的 append函数

注意输入参数是可迭代的就行,列表可以,字符串也是可以的

方法四:使用 insert函数 在指定位置添加元素

做法是从指定位置的元素开始所有元素统一右移一个单位

然后再指定位置插入元素

删除列表的元素 三种方法

方法一: del操作符

使用 del 操作符删除 del 列表元素

方法二: 调用列表对象的 remove方法删除指定元素

方法三: 使用列表对象的 pop方法

该方法可以不指定参数,删除末尾元素,类似于堆栈的出栈操作

当然也可以指定参数,指定下标进行指定的位置的删除

列表的长度 len(列表)

使用 len(列表) 来求出 一个列表的长度

检索列表中的值

统计指定元素的个数 列表的count 函数

in 操作符

判断指定的值是否在列表中 使用 in 操作符

index函数

求出元素在列表中的位置 列表的index函数,第一次出现

列表的类型

列表的清空 clear 方法

 

列表的解析

 格式:

[(元素m的函数操作项目)  for m in 可循环体  m的筛选条件 ]

其中[]表示它是一个列表

其中元素m可以是单个元素,也可以是多个元素,元素m的函数操作项目表示了给该列表的元素

将进行什么样的操作,可循环体可以是列表,元组,字典的items()返回结果...

m的筛选条件表示什么样的元素将被筛选出来然后参与 m的函数操作项目

因此筛选条件可以用 if 语句表示

说明:

上面这个表达式的返回结果仍然是一个列表

列表的解析会很大程度简化掉集合的操作,一行代码就可以给列表的每个元素进行同样的操作

如果换了是 Java,可能要写个循环然后处理每个元素才可以达到效果

例如: 我们要给一个列表的每个元素都扩大2倍之后,然后筛选出 偶数

多个元素的解析

 

列表本身就是迭代器,因此可以用于循环中

 

多重赋值技巧

python中将多个东西写在一起,就可能是一个 元组了,下一个笔记会介绍这个

因此可以使用列表等迭代器给多个写在一起的东西进行赋值操作

sor排序 

数值的列表和字符串的列表可以使用 sort方法进行排序

ll.sort()

ll.sort(reverse=True) //逆序排序

但是要注意,只能是 纯数字和纯字符串的列表可以进行这样的排序

如果是数字和字符串混合的列表是不可以的

 

 

 

 

 

 

 

 

 

 

 

 

列表打印 print函数

可以直接使用 print()函数来打印列表的

列表作为函数参数

虽然我们还没有接触到python的函数,但是 学过c和Java的肯定不会陌生

在c中我们传入了数组到函数中,那么数组的元素是可以被改变的

因为数组是传入了一个地址,引用的传递,不是传值的(数组地址本身可认为是传值的,地址不能改变)

列表作为引用被传递时候也一样,为了防止列表的元素被修改,我们可以使用 拷贝列表来做

copy 模块

import copy

然后 使用 copy.copy(列表)

来复制一个新的列表或者我们传入一个列表的全部切片也可以的

说的copy,肯定就有 浅拷贝和深拷贝了

copy模块的

copy()方法 和 deepcopy() 方法

浅拷贝和深拷贝的方法

猜你喜欢

转载自blog.csdn.net/fk002008/article/details/84749528