python-列表

1 序列

  • 序列: 是一种数据结构,即计算机中数据有顺序的存储方式,python中常用的序列结构有列表、元组、字符串、字典、集合等。
  • 序列的分类:
    • 可变序列:列表、字典、集合
    • 不可变序列:元组、字符串
    • 有序序列:列表、元组、字符串
    • 无序序列:字典、集合

2 列表

  • 概念: 列表是python内置的有序可变序列,是一个对象,列表的所有元素放在一对“[]”中,并用逗号隔开,一个列表中的数据类型可以各不相同
  • 可存储数据::可以保存任意的对象,既可以是基本数据类型,也可以是列表、元组等甚至其它自定义类型的对象
  • 作用:
    - 可以保存多个有序数据
    - 用来存储对象的对象
  • 创建方式:(参考资料:Python序列之列表
    1、使用“=”直接将一个列表赋值给变量即可创建列表对象。例如:a_list = [],b_list = [1,2,3]
    2、使用list()函数将元组、range对象、字符串或其他类型的可迭代对象类型的数据转换为列表。例如:a_list = list(“Hello”) 将字符串 “hello” 转换成列表 [‘H’,‘e’,‘l’,‘l’,‘o’]

2.1 列表元素操作

  • 元素增加:

    • addend(): 向列表尾部增加一个元素,不改变内存首地址,属于原地操作
    • insert(): 向列表任意位置插入元素,不改变内存地址,属于原地操作
    • extend(): 将另一个迭代对象的所有元素添加至该列表尾部,不改变内存首地址,属于原地操作
    • 运算符 * 和+: 并非真的为列表添加元素,而是创建一个新列表,不属于原地操作,而是返回新列表
  • 列表元素的删除:

    • pop(): 使用列表的pop()方法删除并返回指定(默认为最后一个)位置上的元素,如果给定的索引超出了列表的范围则抛出异常。
    • remove: 删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。
    • clear(): 清空列表
    • del: 删除列表中指定位置的元素
  • 列表元素的访问和计数:

    • count(): 统计指定元素在列表对象中出现的次数。
    • index(): 获取指定元素首次出现的下标,若列表对象中不存在指定元素,则抛出异常
    • in: 测试列表中是否存在某元素

2.2 列表的排序

参考资料: Python列表排序 list.sort方法和内置函数sorted ;来源:csdn

  • sort(): 可以按照长短,大小,英文字母的顺序给每个列表的元素进行排序,排序后永久改变列表元素顺序,默认为自动按照字母顺序对字符串由小到大排序,如果数字就由小到大。
sort()方法语法:
 
list.sort(cmp=None, key=None, reverse=False)
 
参数
cmp(了解) -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
 
返回值
该方法没有返回值,但是会对列表的对象进行排序。

  • sorted(): 使用内置函数sorted对列表进行排序并返回新列表,不对原列表做任何修改,可以将其看作先对列表进行复制,再进行顺序的整理。
    • 语法:
sorted(iterable, key=None, reverse=False)  #注在python2中该函数还有个cmp参数,不过在3中取消了
 
 
参数:
 
iterable -- 可迭代对象。
cmp(了解):用于比较的函数,比较什么由key决定;
key -- 主要是用来进行比较的元素,只有一个参数,如字符串长度等。用列表元素的某个属性或函数作为关键字,有默认值,迭代集合中的一项(指定可迭代对象中的一个元素来进行排序。)
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
 
返回值:
 
返回重新排序的列表。

  • reversed() : 返回一个逆序排列后的迭代对象,不对原列表做任何修改,无参数,无返回值

    • 语法:
  • 三者区别: 参考资料:python列表排序方法reverse/sort/sorted详解

    (1) sort()是可变对象(字典、列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值。sort()方法是可变对象独有的方法或者属性,而作为不可变对象如元组、字符串是不具有这些方法的,如果调用将会返回一个异常。
    (2) sorted()是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表。
    (3) reverse()与sort的使用方式一样,而reversed()与sorted()的使用方式相同

  • 注意:

    • list.sort方法就地排序列表,不会把原列表复制一份,这是这个返回值为None的原因
      (Python的一个惯例:如果一个函数或者方法对对象进行的是就地改动,那它就应该返回 None,好让调用者知道传入的参数发生了变动,而且并未产生新的对象。)

2.3 切片

参考资料:Python列表的切片操作与元素访问详解 来源:scdn

  • 概念: 切⽚是指从现有列表中获得⼀个⼦列表
  • 作用: 通过切⽚来获取指定的元素
  • 语法: 列表[起始 : 结束 : 步⻓]
    • 通过切⽚获取元素时,会包括起始位置的元素,不会包括结束位置的元素
    • 起始位置和结束位置的索引可以不写
    • 如果省略结束位置, 则会从当前的开始位置⼀直截取到最后
    • 如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结束的元素
    • 如果开始位置和结束位置都省略, 则则会从第⼀个元素开始截取到最后⼀ 个元素
    • 步⻓表示每次获取元素的间隔,默认是1(可以省略不写)
    • 步⻓不能是0,但可以是是负数

2.4 通用操作

  • +和*
    • +可以将两个列表拼接成⼀个列表
    • *可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘
      法运算)
  • in 和 not in
    • in⽤来检查指定元素是否在列表当中
    • not in ⽤来检查指定元素是否不在列表当中
  • len(): 获取列表中元素的个数
  • max(): 获取列表中最⼤值
  • min() : 获取列表中最⼩值
  • list.index(x[, start[, end]]) :
    • 第⼀个参数 获取指定元素在列表中的位置
    • 第⼆个参数 表示查找的起始位置
    • 第三个参数 表示查找的结束位置
  • list.count(x): 统计指定元素在列表中出现的个数
    注意:
    • 通过切⽚来修改(起始就是给切⽚的内容重新赋值,但是赋值的内容必须是⼀ 个序列)
    • 当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持致
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值