Python列表

1 序列(sequence)

1.1 基本概念

  • 序列是Python中最基本的⼀种数据结构。序列⽤于保存⼀组有序的数据,所有的数据在序列当中都有⼀个唯⼀的位置(索引)并且序列中的数据会按照添加的顺序来分配索引。
  • 数据结构指计算机中数据存储的⽅式。

1.2 序列的分类

  • 可变序列(序列中的元素可以改变):例如:列表(list)、字典(dict)。
  • 不可变序列(序列中的元素不能改变):例如:字符串(str)、元组(tuple)。

2 列表(list)

  • 列表是Python中的⼀个对象。
  • 列表的作⽤:
    • 列表中可以保存多个有序的数据。
    • 列表是⽤来存储对象的对象。

2.1 列表的使用

  • 列表的创建:通过 [] 来创建⼀个空列表。
  • 应用实例:
hero = ['美国队长', '钢铁侠', '绿巨人', '黑寡妇']
new_hero = ['蜘蛛侠', '幻视']
  • 后续文中所演示的 hero 与 new_hero 列表都以上述为基础

2.2 切片

  • 切片是指从现有列表中获得⼀个⼦列表。
  • 通过切片来获取指定的元素。
  • 语法:列表[起始 : 结束 : 步⻓]
  • 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素。
  • 起始位置和结束位置的索引可以不写。
    • 如果省略结束位置,则会从当前的开始位置⼀直截取到最后。
    • 如果省略开始位置,则会从第⼀个元素截取到结束的元素,但是不包括结束的元素。
    • 如果开始位置和结束位置都省略,则会从第⼀个元素开始截取到最后⼀个元素。
  • 步⻓表示每次获取元素的间隔,默认是1(可以省略不写)。
  • 步⻓不能是0,但可以是是负数。
  • 应用实例:
print(hero)
print(hero[::-1])	#	步⻓为负数,表示由后往前取元素
['美国队长', '钢铁侠', '绿巨人', '黑寡妇']
['黑寡妇', '绿巨人', '钢铁侠', '美国队长']

3 通用操作

  • + 和 * :
    • + 可以将两个列表拼接成⼀个列表。
    • * 可以将列表重复指定的次数(注意:2个列表不能够做乘法,要和整数做乘法运算)。
    • 应用实例:
print(hero + new_hero)
print(hero * 2)
['美国队长', '钢铁侠', '绿巨人', '黑寡妇', '蜘蛛侠', '幻视']
['美国队长', '钢铁侠', '绿巨人', '黑寡妇', '美国队长', '钢铁侠', '绿巨人', '黑寡妇']
  • in 和 not in :
    • in ⽤来检查指定元素是否在列表当中。
    • not in ⽤来检查指定元素是否不在列表当中。
    • 应用实例:
print('灭霸' in hero)
print('灭霸' not in hero)
False
True
  • len() :获取列表中元素的个数。
  • max() :获取列表中最⼤值。
  • min() :获取列表中最⼩值。
  • list.index(x[, start[, end]]) :
    • 参数x:获取指定元素在列表中的位置;
    • 参数start:表示查找的起始位置;
    • 参数end:表示查找的结束位置。
  • list.count(x) 统计指定元素在列表中出现的个数。

4 修改列表

  • 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是⼀个序列)。
  • 当设置了步長时,序列中元素的个数必须和切片中元素的个数保持⼀致。
    • 应用实例:
hero[::3] = ['雷神']
ValueError: attempt to assign sequence of size 1 to extended slice of size 2
hero[0:0] = ['雷神'] # 向索引为0的位置插入了一个元素
print(hero)
hero[::3] = ['黑豹', '雷神']
print(hero)
['雷神', '美国队长', '钢铁侠', '绿巨人', '黑寡妇']
['黑豹', '美国队长', '钢铁侠', '雷神', '黑寡妇']
  • 通过切片来删除元素:
    • del list[起始 : 结束]
    • list = []
    • 应用实例:
print(hero)
del hero[1:3]
print(hero)
['美国队长', '钢铁侠', '绿巨人', '黑寡妇']
['美国队长', '黑寡妇']

5 列表的方法

  • append() :向列表的最后添加⼀个元素。
  • insert(arg1,arg2) :向列表指定位置插⼊⼀个元素。
    • 参数arg1:要插入的位置;
    • 参数arg2:要插入的元素。
  • extend(iterbale) :使用⼀个新的序列来扩展当前序列(它会将该序列的中元素 添加到列表中) 参数需要传递⼀个序列。
  • pop() :根据索引删除并返回指定元素。
  • remove() :删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)。
  • reverse() :翻转列表。
  • sort(key=None,reverse=False) :用来对列表中的元素进⾏排序。
    • reverse:True反序;False 正序。
    • 应用实例:
hero.sort(reverse=True)
print(hero)
hero.sort(reverse=False)
print(hero)
['黑寡妇', '钢铁侠', '美国队长', '绿巨人']
['绿巨人', '美国队长', '钢铁侠', '黑寡妇']

6 遍历列表

6.1 for 循环

  • 通过 for 循环来遍历列表。

for 变量 in 序列(遍历的规则):
 代码块

  • 注意:for 循环的代码块会执⾏多次,序列中有几个元素就会执行几次。每执⾏⼀次就将序列中的⼀个元素赋值给变量,因此可以通过变量来获取列表中的元素。
  • 应用实例:
for name in hero:
    print(name)
美国队长
钢铁侠
绿巨人
黑寡妇

6.2 range([start,]stop[,step])

  • 参数说明:
    • start:计数从 start 开始。默认是从 0 开始。例如:range(5) 等价于 range(0,5);
    • stop:计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4];
    • step:步⻓,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值