一、列表是什么?

** 列表由一系列按特定顺序排列的元素组成。**

  可以创建包含字母表中所有字母、数字0-9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。



  列表通常包含多个元素,给列表指定一个表示复数的名称(如:letters、digits或names)



  在Python中,用方括号([ ])来表示列表,并用逗号来进行分隔其中的元素。(如下图)如果你让Python将列表打印出来,Python将打印列表的内部表示,包括方括号。

1.1访问列表元素

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



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

    以上演示了访问列表元素的语法。当你请求获取列表元素时,Python只返回该元素,二部包括方括号和引号。

1.2索引从0而不是1开始

   在Python中,第一个列表元素的索引为0,而不是为1。第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。



   例如,要访问第四个列表元素,可使用索引3。下面的代码访问索引1和3处的自行车,及输出的值。

  ** Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素。这样返回的值“specialized”。经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引,索引-2返回倒数第二个列表元素,以此类推。**

1.3使用列表中的各个值

  可像使用其他变量一样使用列表中的各个值。



  下面将尝试从列表中和提取第一款自行车,并使用这个值来创建一条消息。我们使用bicycle[2]的值生成了一个句子,并将其存储在变量message中。(如下图)

二、修改、添加和删除元素

2.1修改列表元素

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



   例如,假设有一个自行车列表,其中的第五个元素为“Qbike”,如何修改它的值呢?



  ** 我们首先定义一个自行车列表,其中的第五个元素为“Qbike”。接下来,我们将第五个元素的值修改为“U-bicycle”,输出标明,第五个元素值确实变了,其他没变。(可以修改任何列表元素的值,不仅仅是第五个元素值)**

2.2在列表中添加元素

在列表中末尾添加元素

     在列表中添加新元素时,最简单的方式是将元素附加到列表末尾。方法append()将元素‘DDbike’添加到了列表末尾(如下图)而不影响列表中的其他所有元素。

   方法append()让动态的创建列表易如反掌。可以先创建一个空列表,在使用一系列的append()语句添加元素。(如下图)这种创建列表的方式极其常见,因为经常要等程序运行后,你才知道用户要在程序中存储哪些数据。为控制用户,可先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的每个新值附加到列表中。

在列表中插入元素

   使用insert()可在列表的任何位置添加新元素。将值‘hellobike’被插入到了列表开头;方法insert()在索引0处添加空间,并将值‘hellobike’存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置;

2.3从列表中删除元素

使用del语句删除元素:要删除的元素在列表中的位置,可使用del语句。

   上述的代码使用del删除了列表bicycle中的第三个元素——‘hellobike‘’,以此类推。

使用方法pop()删除元素

   有时候,你要将元素从列表中删除,并接着使用它的值。方法pop()可删除列表末尾的元素,并让你能够接着使用它。

   我们首先定义并打印了列表bicycle。接下来,我们从这个列表中弹出一个值,并将其存储到变量popped_bicycle中。然后我们打印这个列表,以核实从其中删除了一个值。最后,我们打印弹出的值,以证明我们依然能够访问被删除的值。



   输出表明,列表末尾的值‘hellobike’已删除,它现在存储在变量popped_bicycle中(如下图)。

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

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

   首先,我们弹出了列表中的第一款共享单车,然后在打印一条有关这辆自行车的消息。输出的是一个简单语句,描述了我想要骑的共享单车:

每当你使用pop()时,被弹出的元素就不在列表中了。

如果你要从列表中删除一个元素,且不再以任何方式使用它,就是用del语句。

如果你要在删除元素后还能继续使用它,就使用方法pop()。

根据值删除元素

   有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove()。

   使用remove()从列表中删除元素时,可接着使用它的值。下面删除值‘Qbike’,并打印一条消息,指出从列表中删除的原因:

   上述,我们将值‘Qbike’存储在变量to_ride中。接下来,我们使用这个变量来告诉Python将哪个值从列表中删除。最后,值‘Qbike’已经从列表中删除。但它还存储在变量to_ride中,打印并指出将‘Qbike’从列表bicycle中删除的原因(如下图)

注意:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。