Python 基础 -- 列表

1. 列表定义

  • 列表是一个可以存储成组信息的地方;

  • 列表是由一系列按特定顺序排列的元素组成;

  • 列表中可以添加任何成员,包括字母、数字或者家庭成员信息等;

  • 列表中的元素可以没有任何关系

  • 鉴于列表通常包含多个元素,所以列表名称一般使用复数表示;

  • Python 中列表使用 [] 表示,并用 , 来分隔其中的元素;
    在这里插入图片描述

  • 如上列表示例,并将其打印输出,但是这种输出含有方括号,这不是让用户看到的格式,下面将介绍如何访问列表元素。

1.1 访问列表的元素

  • 列表是有序集合,因此只需将该元素的位置或者索引告诉 Python 即可;

  • 访问列表元素,可指出列表名称,再指出元素的索引,并将其放在方括号内;
    在这里插入图片描述

  • 当请求获得列表中的元素时,Python 只返回该元素,而不包括方括号和引号;

  • 这种输出结果是整洁、干净的,是用户需要看到的;

  • 如果结合 title() 函数,会使得格式更加整洁。

1.2 索引

  • 在 Python 中,第一个列表元素的索引是 0,而不是 1,这与列表底层实现有关;

  • bicycles 列表中,需要访问第 2 个和第 4 个元素时,索引需要为 1 和 3;
    在这里插入图片描述

  • Python 为访问最后一个列表元素提供了一种特殊的语法:

    • 索引为 -1 时,将返回最后一个元素;

    • 索引为 -2 时,将返回倒数第二个元素;

      ……
      在这里插入图片描述

1.3 使用列表中的各个值

  • 可以像使用变量一样,使用列表中的各个值;
    在这里插入图片描述

2. 修改、添加和删除元素

  • 创建的列表大多数都是动态的,这意味着列表创建后,将随着程序的运行进行元素的增删;
  • 例如,创建一个游戏,要求玩家射杀外星人,为此,可以在开始时将一些外星人存储在列表中,然后每当有外星人被杀时,都将其从列表中删除,每次有新外星人出现时,都将其添加在列表中;

2.1 修改列表元素

  • 修改列表元素的语法与访问列表元素的语法类似;

  • 修改列表元素,可指定列表名和要修改的元素索引,再指定该元素的新值;
    在这里插入图片描述

  • 建立一个 motorcycles 列表,并将第一个元素进行修改,输出表明,只有第一个元素进行了改变,其他都没有改变;

  • 可以按照以上操作修改任意的元素,并非只能修改第一个;

2.2 在列表中添加元素

1. 在列表末尾添加元素
  • 在列表中添加新元素时,最简单的就是将元素附加到列表末尾;

  • 使用 append() 函数将元素添加到列表末尾,不会影响列表中其他所有元素;
    在这里插入图片描述

  • append() 函数也可以动态创建列表;

  • 先创建一个空列表,通过一系列 append() 函数添加元素
    在这里插入图片描述

2. 在列表总插入元素
  • 使用 insert 函数可以在列表中任何位置添加新元素;

  • 使用 insert 函数进行添加元素时需要指定新元素的索引
    在这里插入图片描述

  • 使用 insert 函数进行添加元素时,添加位置左边的元素索引不变,右边索引统一向后移动一位;

2.3 从列表中删除元素

  • 有时候在某些程序中,需要删除列表中的一个或者多个元素;
  • 例如一个系统有多个账户,在注销账户时就需要将该账户从活跃账户列表中删除;
1. 使用 del 语句删除元素
  • 知道要删除元素在列表中的位置时,可以使用 del 语句进行元素删除;
    在这里插入图片描述
2. 使用函数 pop() 删除元素
  • 有时候将元素从列表中删除后,还需要接着使用它的值;

  • 比如,当你将某用户从活跃列表中移除时,就需要将其添加到非活跃用户列表中;

  • 函数 pop() 可删除列表末尾的元素,并让你能够接着使用它;

  • 术语弹出(pop) 源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素;
    在这里插入图片描述

  • 定义并打印列表 motorcycles

  • 从列表 motorcycles 中弹出末尾元素,并将其存储到变量 pop_motorcycles 中;

  • 打印弹出末尾元素值后的列表,显示,从原列表中删除了最后一个元素;

  • 打印弹出的值,证明被弹出的值依旧可以访问;

3. 弹出列表中任何位置的元素
  • 使用 pop() 函数删除任何位置的元素时,只需要括号里边指定删除元素的索引;
    在这里插入图片描述
4. pop() 和 del 的选择
  • 当你要从列表中删除一个元素,并且不再以任何方式使用它的时候,选择 del
  • 当你希望删除后的元素还能继续使用时,选择 pop()
5. 根据值删除元素
  • 当不知道元素的索引,但是知道元素的值时,可以使用 remove() 方法删除元素;

  • remove() 只删除第一个指定的值。如果需要删除多个重复值,需要使用循环。
    在这里插入图片描述

3. 组织列表

  • 有时候希望列表元素保持最初始的排列顺序;
  • 有时候又需要对元素进行排序;

3.1 使用 sort() 方法对列表进行永久排序

  • sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数;

  • sort() 函数语法:

    list.sort(cmp = None, key = None, reverse = False)
    
  • cmp :可选参数,如果指定了该参数会使用该参数的方法进行排序;

  • key :用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可选迭代对象中的一个元素来进行排序;

  • reverse :排序规则,reverse = True 降序,reverse = False 升序(默认);
    在这里插入图片描述

3.2 使用 sorted() 方法对列表进行临时排序

  • 使用 sorted() 函数,既可以保留列表元素原来的排列顺序,同时以特定的顺序呈现它们;
    在这里插入图片描述

  • 也可以向函数 sorted() 传递参数 reverse = True

3.3 倒着打印列表

  • 要反转列表元素的排列顺序,可以使用函数 reverse()
    在这里插入图片描述

  • 函数 reverse() 永久性的改变元素排列顺序,但是可以随时恢复之前的排列顺序;

  • 函数 reverse() 并不是按照字顺序的相反顺序排列列表元素,只是反转列表元素的排列顺序。

3.4 确定列表长度

  • 使用函数 len() 可以获得列表的长度;
    在这里插入图片描述

4. 遍历列表

  • 遍历列表就是对列表中的每一个元素执行相同的操作;
  • 在 Python 中可以使用循环来实现;
    • 循环就是让计算机自动完成重复工作的常见方式之一;
    • 典型代表:for 循环;

4.1 for 循环

  • 语法:

    for car in cars:
        print(car)
    
  • 注意:

    • Python 根据缩进来判断代码行与前一个代码的关系
    • 在 for 循环后面,没有缩进的代码都只执行一次;
  • 正常遍历列表:
    在这里插入图片描述

  • 对于列表中的每个名字,Python 都将重复执行 for 循环内容,将所有名字都打印都出来;

  • 常见错误 – 忘记缩进
    在这里插入图片描述

  • 常见错误 – 遗漏了冒号
    在这里插入图片描述

5. 创建数字列表

  • 在数据可视化中,处理的几乎都是由数字(如温度、距离和人口数量等)组合成的集合;
  • 列表非常适合用于存储数字集合;

5.1 range() 函数

  • range() 函数可创建一系列数字;

  • 语法:

    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。
  • Python 2 中 range() 函数返回的是列表:
    在这里插入图片描述

  • Python 3 中 range() 函数返回的是一个可迭代的对象,而不是列表类型,所以打印的时候不会打印出列表:
    在这里插入图片描述

  • list() 函数是对象迭代器,可以把 range() 函数返回的可迭代对象转为一个列表,返回的变量类型为列表:
    在这里插入图片描述

5.2 使用 range() 创建数字列表

  • 使用 range() 打印 1~10 内的所有数;
    在这里插入图片描述

  • 使用 range() 打印 1~10 内的所有偶数;
    在这里插入图片描述

  • 使用 range() 打印 1~10 内的所有数的平方;
    在这里插入图片描述

5.3 对数字列表执行简单的统计计算

  • Python 有几个专门处理简单数字列表的函数;

  • 例如,最大值 max 、最小值 min 和总和 sum
    在这里插入图片描述

5.4 列表解析

  • 对于 5.2 节中,使用 range() 打印 1~10 内的所有数的平方,包含三四行代码,颇为繁琐;

  • 列表解析可以使得只需要一行代码就可以生成这样的列表;

  • 列表解析:将 for 循环和创建新元素的代码合并成一行,并自动附加新元素;
    在这里插入图片描述

  • 这种语法定义如下:

    • 首先,描述一个列表名,如 squares;
    • 然后,指定一个左方括号,并定义一个表达式,用来生成你要存储到列表中的值,如 values ** 2
    • 最后,使用 for 循环,给表达式提供值,再加上右方括号;
    • 值得注意的是:列表解析中的 for 循环末尾没有冒号

6. 使用列表中的一部分

6. 1 切片

  • 切片:列表中的部分元素;

  • 创建列表切片与 range() 函数类似;

  • 可指定要使用的第一个元素的索引和最后一个元素的索引加 1;

  • 例如,指定索引 0~3,将会输出索引为 0、1 和 2 的元素;
    在这里插入图片描述

6.2 遍历切片

  • 在很多情况下,切片都很有用,例如, web 程序中,可以使用切片来分页显示;

  • 通过在 for 循环中使用切片,达到遍历切片的目的:
    在这里插入图片描述

6.3 复制列表

  • 复制列表,可以创建一个包含整个列表的切片;

  • 方法是同时省略起始索引和终止索引 ([:])
    在这里插入图片描述

  • 对我们各自喜欢的队员进行追加,结果如下:
    在这里插入图片描述

  • 结果显示,追加成功;

  • 在最开始看复制列表这一块,我的第一反应是 friend_players = my_players 这样直接赋值;

  • 但是在 Python 语法中,意思是将 friend_players 关联到包含在 my_players 列表中,因此这两个变量都指向同一个表,添加新信息的时候就会同时出现在两个列表中,演示如下:
    在这里插入图片描述

7. 元组

7.1 元组定义

  • 元组:不可变的列表;

  • 元组虽然是不可变的列表,但是不是列表,它是使用圆括号 () 来标识;

  • 定义后,也可以使用索引来访问;
    在这里插入图片描述

  • 元组是不可以修改的:
    在这里插入图片描述

7.2 元组遍历

  • 像列表一样,元组中的所有值可以用 for 循环来遍历:
    在这里插入图片描述

7.3 修改元组变量

  • 元组虽然不可以直接修改其中的元素,但是可以通过重新赋值来改变元组,即重新定义;
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值