• 列表(一)


    1、列表是什么

          列表是由一系列按照特定顺序排列的元素组成,它可以创建包含字母表中的所有字母、数字0-9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,所以可以给列表表示一个复数的名称,比如:letters,digits,names等。

          在Python中,用方括号([ ])来表示列表,并用逗号来分隔其中的元素。

    2、访问列表元素

          列表是有序集合,因此要访问列表中的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。

          例如,下面的代码从列表bicycles中提取第一款自行车:

     

          还可以利用方法.title()是之首字母变为大写:

         要注意的是,索引从0开始,而不是从1开始。在Python中,第一个列表元素的索引为0,而不是1,在大多数编程语言中都是如此,这与列表操作的底层实现相关。

          另外Python为访问最后一个列表元素提供了一种特殊语法,通过将索引指定为-1,可让Python返回最后一个列表元素。这个语法很有用,因为我们经常需要在不知道列表长度的情况下访问最后的元素。而且这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推。

           可像使用其他变量一样使用列表中的各个值,例如,我们可以使用拼接根据列表中的值来创建消息。例如:

    3、修改、添加和删除列表元素

          我们创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。比如:创建一个游戏,要求玩家射杀从天而降的外星人;为此,可在开始时将一些外星人存储在列表中,然后每当有外星人被射杀时,都将其从列表中删除,而每次有新的外星人出现在屏幕上时,都将其添加到列表中。在整个游戏运行期间,外星人列表的长度将不断变化。  

    • 修改列表元素

          修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。例如:

    • 添加列表元素

    1、在列表末尾添加元素

    可利用。append()函数,例如:

         利用append()也可以动态地创建一个列表,比如,我们先创建一个空列表,再使用一系列的append()语句添加元素。下面来创建一个空列表,再在其中添加元素。

    2、在列表中插入元素

           使用方法insert()可在列表的任何位置添加新元素,所以,需要指定新元素的索引和值:

    • 删除列表元素

         我们经常需要从列表中删除一个或多个元素,例如,玩家将空中的一个外星人射杀后,我们可能要将其从存活的外星人列表中删除;当用户在我们创建的web应用中注销其账户时,我们需要将该用户从活跃用户列表中删除。我们可以根据位置或值来删除列表中的元素。

    1、使用del语句删除元素

    如果知道要删除的元素在列表中的位置,我们可以使用del语句:

     

    2、使用方法pop()删除元素

         有时候,我们要将元素从列表中删除,并接着使用它的值。例如:我们可能需要获取刚被射杀的外星人x与y的坐标,以便在相应的位置显示爆炸效果;在web应用程序中,我们可能要将用户从活跃成员列表中删除,并将其加入到非活跃成员列表中。

         方法pop()可删除列表中末尾的元素,并让我们能够接着使用它:

    可以使用方法pop()打印一条消息,指出最后购买的是哪款摩托车:

     

    3、弹出列表中任何位置处的元素

          可以使用pop()来删除列表中任何位置的元素,只需要在pop()的括号中指定要删除元素的索引即可:

    注意:以上motorcycles.pop(0)是被弹出去的那个元素,而不是弹出元素后剩下的那个列表;每当使用pop()时,被弹出的元素就不在列表中了。

           如果我们要删除一个元素,且不再以任何方式使用它,就是用del语句;如果我们要在删除元素后继续使用它,就使用方法pop()。

    4、根据值删除元素

          有时候,我们不知道要在列表中删除的值所处的位置,只知道要删除的元素的值,可以使用方法remove()。

           例如,假设我们要在列表motorcycles中删除值'ducati',使用remove语句:

    另外,使用remove()从列表中删除元素时,也可以接着使用它的值。

     4、组织列表

          在我们创建的列表中,元素的排列顺序常常是无法预测的,因为我们不能控制用户提供数据的顺序,虽然这在大多数情况下是无法避免的,但我们经常需要以特定的顺序呈现信息。有时候,我们希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。

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

           例如,用sort()将一个汽车列表按照汽车的字母顺序排列,为简化这项任务,我们假设该列表中的所有值都是小写的。

         现在,汽车是按照字母顺序排列的,而且再也无法回复到原来的排列顺序。

         我们也可以按照与字母顺序相反的顺序排列,为此只需要向sort()方法传递参数reverse=True,比如:

    • 使用函数sorted()对列表进行临时排序

          如果我们要保留列表元素原来的排列顺序,同时以特定的顺序去呈现他们,可以使用 sorted()。函数sorted()让我们能够按特定的顺序排列显示列表元素,同时也不影响他们在列表中的原始排列顺序。

    注意:调用函数sorted()后,列表元素的排列顺序并没有改变,如果要按与字母顺序相反的顺序显示列表,也可以向函数sorted()传递参数reverse=True.

    • 倒着打印列表

    要反转列表元素的排列顺序,可使用方法reverse(),假设汽车列表是按购买时间排列的,可轻松地按相反的顺序排列其中的汽车。

    方法reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序,它永久性地修改列表元素的排列顺序,但可以随时恢复到原来的排列顺序,只需对列表再次调用reverse()即可。

    • 确定列表的长度

    使用函数len()可快速获悉列表的长度:

           有时候冷len()很有用:确定还有多少个外星人未被射杀,需要管理多少项可视化数据,网站有多少注册用户等。

     5、使用列表时避免索引错误

    开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取第四个元素。就会出现索引错误。

  • 相关阅读:
    AtCoder Beginner Contest 184 ABCDE 题解
    Codeforces Round #685 (Div. 2) C. String Equality 思维
    Codeforces Round #682 (Div. 2) ABC 题解
    Gym 102215 & 队内训练#5
    【题解】 CF436E Cardboard Box 带悔贪心
    【题解】 「NOI2019」序列 模拟费用流 LOJ3158
    【笔记】 exlucas
    【题解】 「HNOI2018」毒瘤 树形dp+动态dp+容斥+格雷码 LOJ2496
    【笔记】 异或高斯消元方案数
    【笔记】 用生成函数推二项式反演
  • 原文地址:https://www.cnblogs.com/haohanTL/p/10856380.html
Copyright © 2020-2023  润新知