列表(一)

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、使用列表时避免索引错误

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

 

posted @ 2019-05-13 14:22  刘璐TL  阅读(192)  评论(0编辑  收藏  举报