第3章 
学习目标:

列表是什么以及如何使用列表元素。列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python功能之一,它融合了众多重要的编程概念。

3.1 列表是什么

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

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

例如:

  1. bicycles.py
  2. bicycles = [ 'trek','cannondale','redline','specialired' ]
  3. print(bicycles)
  4. # 结果:
  5. ['trek', 'cannondale', 'redline', 'specialired']

3.1.1 访问列表元素

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

  1. # 例如,从列表bicycles中提取第一款自行车
  2. bicycles = [ 'trek','cannondale','redline','specialired' ]
  3. print(bicycles[0])
  4. # 结果:
  5. trek
  6. # 当然,或者 可使用方法title()让元素 'trek'的格式更整洁:
  7. print(bicycles[0].title())
  8. # 这个示例的输出与前一个示例相同,只是首字母T是大写的。

3.1.2 检索从0而不是1开始

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

  1. print(bicycles[1])
  2. print(bicycles[3])
  3. # 这些代码返回列表中得第二个和第四个元素:
  4. cannondale
  5. specialized
  6. # Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返
  7. 回最后一个列表元素:
  8. print(bicycles[-1])
  9. 这些代码返回'specialized'。这种语法很有用,因为你经常需要在不知道列表长度的情况
  10. 下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,
  11. 索引-3返回倒数第三个列表元素,以此类推。

3.1.3 使用列表中的各个值

可像使用其他变量一样使用列表中的各个值。例如,你可以使用拼接根据列表中的值来创建
消息。
下面来尝试从列表中提取第一款自行车,并使用这个值来创建一条消息:

  1. message = "My first bicycle was a " + bicycles[0].title() + "."
  2. print(message)
  3. # 结果:
  4. My first bicycle was a Trek.

动手试一试

请尝试编写一些简短的程序来完成下面的练习,以获得一些使用Python 列表的第
一手经验。你可能需要为每章的练习创建一个文件夹,以整洁有序的方式存储为完成各
章的练习而编写的程序。

3-1 姓名:将一些朋友的姓名存储在一个列表中,并将其命名为names。依次访问
该列表中的每个元素,从而将每个朋友的姓名都打印出来。

  1. names = [ 'zhangsan','lisi','wangwu','zhaoliu']
  2. print(names[0])
  3. print(names[1])
  4. print(names[-2])
  5. print(names[-1])
  6. # 结果:
  7. zhangsan
  8. lisi
  9. wangwu
  10. zhaoliu

3-2 问候语:继续使用练习3-1 中的列表,但不打印每个朋友的姓名,而为每人打
印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。

  1. messname1 = "Hi " + names[0].title() + "."
  2. messname2 = "Hi " + names[1].title() + "."
  3. messname3 = "Hi " + names[2].title() + "."
  4. messname4 = "Hi " + names[3].title() + "."
  5. print(messname1)
  6. print(messname2)
  7. print(messname3)
  8. print(messname4)
  9. # 结果:
  10. Hi Zhangsan.
  11. Hi Lisi.
  12. Hi Wangwu.
  13. Hi Zhaoliu.

3-3 自己的列表:想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含
多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like
to own a Honda motorcycle”。

  1. bicycles = ['bike','electric car','motorbike','car']
  2. mess1 = "I want to buy an " + bicycles[1].title() + "."
  3. print(mess1)
  4. # 结果:
  5. I want to buy an Electric Car.

3.2 修改、添加和删除元素

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

3.2.1 修改列表元素

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

例如:

  1. motorcycles.py
  2. -----------------------------------------
  3. motorcycles = ['honda','yamaha','suzuki']
  4. print(motorcycles)
  5. motorcycles[0] = 'ducati'
  6. print(motorcycles)
  7. -----------------------------------------
  8. ['honda', 'yamaha', 'suzuki']
  9. ['ducati', 'yamaha', 'suzuki']

3.2.2 在列表中添加元素

你可能出于众多原因要在列表中添加新元素,例如,你可能希望游戏中出现新的外星人、添
加可视化数据或给网站添加新注册的用户。Python提供了多种在既有列表中添加新数据的方式。

  1. 在列表末尾添加元素

在列表中添加新元素时,最简单的方式是将元素附加列表末尾。给列表附加元素时,它将
添加到列表末尾。继续使用前一个示例中的列表,在其末尾添加新元素'ducati':

  1. motorcycles.append('ducati')
  2. print(motorcycles)
  3. ---------------------------------------
  4. ['ducati', 'yamaha', 'suzuki', 'ducat']
  5. # 方法append()将元素'ducati'添加到了列表末尾 ,而不影响列表中的其他所有元素

方法append()让动态地创建列表易如反掌,例如,你可以先创建一个空列表,再使用一系列的
append()语句添加元素。下面来创建一个空列表,再在其中添加元素'honda'、'yamaha'和'suzuki':

  1. motorcycles = []
  2. motorcycles.append('honda')
  3. motorcycles.append('yamaha')
  4. motorcycles.append('suzuki')
  5. print(motorcycles)
  6. -----------------------------
  7. ['honda', 'yamaha', 'suzuki']

这种创建列表的方式极其常见,因为经常要等程序运行后,你才知道用户要在程序中存储哪
些数据。为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的
每个新值附加到列表中。

  1. 在列表中插入元素

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

  1. motorcycles.insert(0,'ducati')
  2. print(motorcycles)
  3. ---------------------------------------
  4. ['ducati', 'honda', 'yamaha', 'suzuki']
  5. # 在这个示例中,值'ducati'被出入到列表开头;方法insert()在索引0处添加空间,并将值'ducati'存储到这个地方。这种操作将列表中既有的每个元素都右一个位置。

3.2.3 从列表中删除元素

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

  1. 使用del语句删除元素
  1. # 知道要删除的元素所在列表中的位置,可使用del语句
  2. motorcycles = ['ducati', 'honda', 'yamaha', 'suzuki']
  3. del motorcycles[0]
  4. print(motorcycles)
  5. -----------------------------
  6. ['honda', 'yamaha', 'suzuki']
  1. 使用方法pop()删除元素

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

方法pop()可删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类
比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。

  1. motorcycles = ['honda','yamaha','suzuki']
  2. print(motorcycles)
  3. popped_motorcycle = motorcycles.pop()
  4. print(motorcycles)
  5. print(popped_motorcycle)
  6. ------------------------------------------
  7. ['honda', 'yamaha', 'suzuki']
  8. ['honda', 'yamaha']
  9. suzuki

方法pop()是怎么起作用的呢?假设列表中的摩托车是按购买时间存储的,就可使用方法
pop()打印一条消息,指出最后购买的是哪款摩托车:

  1. motorcycles = ['honda', 'yamaha', 'suzuki']
  2. last_owned = motorcycles.pop()
  3. print("The last motorcycle I owned was a " + last_owned.title() + ".")
  4. -----------------------------------------------------------------------
  5. The last motorcycle I owned was a Suzuki.
  1. 弹出列表中任何位置处的元素

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

  1. first_owned = motorcycles.pop(0)
  2. print("The last motorcycle I owned was a " + first_owned.title() + ".")
  3. -------------------------------------------------------------------------
  4. The last motorcycle I owned was a Honda.

如果你不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果你要从列表
中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续
使用它,就使用方法pop()。

  1. 根据值删除元素

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

  1. # 假设我们要从列表motorcycles中删除值'ducati'
  2. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  3. motorcycles = ['honda', 'yamaha', 'suzuki','ducati']
  4. motorcycles.remove('ducati')
  5. print(motorcycles)
  6. -----------------------------------------------------
  7. ['honda', 'yamaha', 'suzuki']

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

  1. motorcycles = ['honda', 'yamaha', 'suzuki','ducati']
  2. too_expensive = 'ducati'
  3. motorcycles.remove(too_expensive)
  4. print(motorcycles)
  5. print("\nA " + too_expensive.title() + " is too expensive for me.")
  6. -------------------------------------------------------------------
  7. ['honda', 'yamaha', 'suzuki']
  8. A Ducati is too expensive for me.

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

动手试一试

下面的练习比第2 章的练习要复杂些,但让你有机会以前面介绍过的各种方式使用
列表。

3-4 嘉宾名单:如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),
你会邀请哪些人?请创建一个列表,其中包含至少3 个你想邀请的人;然后,使用这个
列表打印消息,邀请这些人来与你共进晚餐。

  1. dinner = []
  2. dinner.append('zhangsan')
  3. dinner.append('lisi')
  4. dinner.append('wangwu')
  5. print(dinner)
  6. ---------------------------------------
  7. ['zhangsan', 'lisi', 'wangwu']

3-5 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。

  1. dinner = []
  2. dinner.append('zhangsan')
  3. dinner.append('lisi')
  4. dinner.append('wangwu')
  5. print(dinner)
  6. dinner[1] = 'zhaoliu'
  7. print(dinner)
  8. --------------------------------
  9. ['zhangsan', 'lisi', 'wangwu']
  10. ['zhangsan', 'zhaoliu', 'wangwu']
  • 以完成练习3-4 时编写的程序为基础,在程序末尾添加一条print 语句,指出哪
    位嘉宾无法赴约。
  1. dinner = []
  2. dinner.append('zhangsan')
  3. dinner.append('lisi')
  4. dinner.append('wangwu')
  5. print(dinner)
  6. no_dinner = dinner.pop(1)
  7. print(no_dinner + " 无法赴约")
  8. ---------------------------------
  9. ['zhangsan', 'lisi', 'wangwu']
  10. lisi 无法赴约
  • 修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
  1. dinner = []
  2. dinner.append('zhangsan')
  3. dinner.append('lisi')
  4. dinner.append('wangwu')
  5. print(dinner)
  6. no_dinner = dinner.pop(1)
  7. dinner.insert(1,'zhaoliu')
  8. print(dinner)
  9. --------------------------------
  10. ['zhangsan', 'lisi', 'wangwu']
  11. ['zhangsan', 'zhaoliu', 'wangwu']
  • 再次打印一系列消息,向名单中的每位嘉宾发出邀请。
  1. ....上述代码省略
  2. print(dinner[0])
  3. print(dinner[1])
  4. print(dinner[2])
  5. --------------------
  6. zhangsan
  7. zhaoliu
  8. wangwu

3-6 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀
请哪三位嘉宾。

  • 以完成练习3-4 或练习3-5 时编写的程序为基础,在程序末尾添加一条print 语
    句,指出你找到了一个更大的餐桌。
  1. print("找到了一个更大的餐桌")
  2. ------------------------------
  3. 找到了一个更大的餐桌
  • 使用insert()将一位新嘉宾添加到名单开头。
  1. dinner.insert(0,'xiaoming')
  2. print(dinner)
  3. ---------------------------------------------
  4. ['xiaoming', 'zhangsan', 'zhaoliu', 'wangwu']
  • 使用insert()将另一位新嘉宾添加到名单中间。
  1. dinner.insert(2,'xiaofang')
  2. print(dinner)
  3. ---------------------------------------------------------
  4. ['xiaoming', 'zhangsan', 'xiaofang', 'zhaoliu', 'wangwu']
  • 使用append()将最后一位新嘉宾添加到名单末尾。
  1. dinner.append('xiaowu')
  2. print(dinner)
  3. -------------------------------------------------------------------
  4. ['xiaoming', 'zhangsan', 'xiaofang', 'zhaoliu', 'wangwu', 'xiaowu']
  • 打印一系列消息,向名单中的每位嘉宾发出邀请。
  1. print("邀请: " + dinner[0])
  2. print("邀请: " + dinner[1])
  3. print("邀请: " + dinner[2])
  4. print("邀请: " + dinner[3])
  5. print("邀请: " + dinner[4])
  6. print("邀请: " + dinner[5])
  7. -----------------------------
  8. 邀请: xiaoming
  9. 邀请: zhangsan
  10. 邀请: xiaofang
  11. 邀请: zhaoliu
  12. 邀请: wangwu
  13. 邀请: xiaowu

3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。

  • 以完成练习3-6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只
    能邀请两位嘉宾共进晚餐的消息。
  1. print("只能邀请两位嘉宾共进晚餐!")
  • 使用pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹
    出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进
    晚餐。
  1. no_dinner = dinner.pop()
  2. print("I'm sorry " + no_dinner)
  3. no_dinner = dinner.pop()
  4. print("I'm sorry " + no_dinner)
  5. no_dinner = dinner.pop()
  6. print("I'm sorry " + no_dinner)
  7. no_dinner = dinner.pop()
  8. print("I'm sorry " + no_dinner)
  9. -------------------------------
  10. I'm sorry xiaowu
  11. I'm sorry wangwu
  12. I'm sorry zhaoliu
  13. I'm sorry xiaofang
  • 对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
  1. print(dinner)
  2. ------------------------
  3. ['xiaoming', 'zhangsan']
  • 使用del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程
    序结束时名单确实是空的。
  1. del dinner[0]
  2. del dinner[0]
  3. print(dinner)
  4. -------------
  5. []

3.3 组织列表

在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据
的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。有时候,
你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列
表的方式,可根据具体情况选用。

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

Python方法sort()让你能够较为轻松地对列表进行排序。假设你有一个汽车列表,并要让其
中的汽车按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。

  1. cars.py
  2. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  3. cars = ['bmw','audi','toyota','subaru']
  4. cars.sort()
  5. print(cars)
  6. -----------------------------------
  7. ['audi', 'bmw', 'subaru', 'toyota']
  8. # 方法sort() 永久性地修改了列表元素的排列顺序。
  9. # 现在,汽车是按字母顺序排列额,再也无法恢复到原来的排列顺序

你还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数
reverse=True。下面的示例将汽车列表按与字母顺序相反的顺序排列:

  1. cars = ['bmw','audi','toyota','subaru']
  2. cars.sort(reverse=True)
  3. print(cars)
  4. -----------------------------------
  5. ['toyota', 'subaru', 'bmw', 'audi']

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

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

下面尝试对汽车列表调用这个函数。

  1. cars = ['bmw','audi','toyota','subaru']
  2. print("Here is the original list:")
  3. print(cars)
  4. print("\nHere is the sorted list:")
  5. print(sorted(cars))
  6. print("\nHere is the original list again:")
  7. print(cars)
  8. --------------------------------------------
  9. Here is the original list:
  10. ['bmw', 'audi', 'toyota', 'subaru']
  11. Here is the sorted list:
  12. ['audi', 'bmw', 'subaru', 'toyota']
  13. Here is the original list again:
  14. ['bmw', 'audi', 'toyota', 'subaru']

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

注意 在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种
解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的要复杂。然而,
大多数排序方式都基于本节介绍的知识。

3.3.3 倒着打印列表

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

  1. cars = ['bmw','audi','toyota','subaru']
  2. print(cars)
  3. cars.reverse()
  4. print(cars)
  5. -----------------------------------------
  6. ['bmw', 'audi', 'toyota', 'subaru']
  7. ['subaru', 'toyota', 'audi', 'bmw']

注意,reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排
列顺序。

方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此
只需对列表再次调用reverse()即可。

3.3.4 确定列表的长度

使用函数len()可快速获悉列表的长度。在下面的示例中,列表包含4个元素,因此其长度为4:

  1. >>> cars = ['bmw','audi','toyota','subaru']
  2. >>> len(cars)
  3. 4

在你需要完成如下任务时,len()很有用:确定还有多少个外星人未被射杀,需要管理多少
项可视化数据,网站有多少注册用户等。

注意 Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误。

动手试一试

3-8 放眼世界:想出至少5 个你渴望去旅游的地方。

  • [ ] 将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
  1. toponymy = ['thailand','Singapore','japanese','egypt','america']
  • 按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python 列表。
  1. print(toponymy)
  2. ----------------------------------------------------------
  3. ['thailand', 'Singapore', 'japanese', 'egypt', 'america']
  • [ ] 使用sorted()按字母顺序打印这个列表,同时不要修改它。
  1. print(sorted(toponymy))
  2. ---------------------------------------------------------
  3. ['america', 'egypt', 'japanese', 'singapore', 'thailand']
  • [ ] 再次打印该列表,核实排列顺序未变。
  1. print(toponymy)
  2. ---------------------------------------------------------
  3. ['thailand', 'singapore', 'japanese', 'egypt', 'america']
  • [ ] 使用sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。
  1. toponymy = ['thailand','japanese','singapore','egypt','america']
  2. print(sorted(toponymy,reverse=True))
  3. ----------------------------------------------------------------
  4. ['thailand', 'singapore', 'japanese', 'egypt', 'america']
  • 再次打印该列表,核实排列顺序未变。
  1. print(toponymy)
  2. ---------------------------------------------------------
  3. ['thailand', 'japanese', 'singapore', 'egypt', 'america']
  • 使用reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
  1. toponymy = ['thailand','japanese','singapore','egypt','america']
  2. print("Original list: ")
  3. print(toponymy)
  4. toponymy.reverse()
  5. print("\nModify the list: ")
  6. print(toponymy)
  7. ---------------------------------------------------------
  8. Original list:
  9. ['thailand', 'japanese', 'singapore', 'egypt', 'america']
  10. Modify the list:
  11. ['america', 'egypt', 'singapore', 'japanese', 'thailand']
  • 使用reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
  1. toponymy.reverse()
  2. print("\nModify the following list again: ")
  3. print(toponymy)
  4. -----------------------------------------------------------
  5. Modify the following list again:
  6. ['thailand', 'japanese', 'singapore', 'egypt', 'america']
  • 使用sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。

  1. toponymy = ['thailand','japanese','singapore','egypt','america']
  2. toponymy.sort()
  3. print(toponymy)
  4. ---------------------------------------------------------
  5. ['america', 'egypt', 'japanese', 'singapore', 'thailand']
  • 使用sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
  1. toponymy = ['thailand','japanese','singapore','egypt','america']
  2. toponymy.sort()
  3. print(toponymy)
  4. toponymy.sort(reverse=True)
  5. print(toponymy)
  6. ----------------------------------------------------------
  7. ['america', 'egypt', 'japanese', 'singapore', 'thailand']
  8. ['thailand', 'singapore', 'japanese', 'egypt', 'america']

3-9 晚餐嘉宾:在完成练习3-4~练习3-7时编写的程序之一中,使用len()打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。

  1. >>> cars = ['bmw','audi','toyota','subaru']
  2. >>> len(cars)
  3. 4

3-10 尝试使用各个函数:想想可存储到列表中的东西,如山岳、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。

  1. name = ['mount everest','yellow river','beijing','china']
  2. print(name)
  3. print("\n临时排序: ")
  4. print(sorted(name))
  5. print("\n临时相反排序: ")
  6. print(sorted(name,reverse=True))
  7. print("\n按字母顺序相反排序: ")
  8. name.sort(reverse=True)
  9. print(name)
  10. print("\n按字母排序: ")
  11. name.sort()
  12. print(name)
  13. print("\n倒着打印: ")
  14. name.reverse()
  15. print(name)
  16. print("\n元素个数: ")
  17. print(len(name))
  18. print("\n元素个数: %d" % len(name))
  19. ----------------------------------------------------------
  20. ['mount everest', 'yellow river', 'beijing', 'china']
  21. 临时排序:
  22. ['beijing', 'china', 'mount everest', 'yellow river']
  23. 临时相反排序:
  24. ['yellow river', 'mount everest', 'china', 'beijing']
  25. 按字母顺序相反排序:
  26. ['yellow river', 'mount everest', 'china', 'beijing']
  27. 按字母排序:
  28. ['beijing', 'china', 'mount everest', 'yellow river']
  29. 倒着打印:
  30. ['yellow river', 'mount everest', 'china', 'beijing']
  31. 元素个数:
  32. 4
  33. 元素个数: 4

Python基础 列表介绍、使用的更多相关文章

  1. python基础——列表生成式

    python基础——列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4 ...

  2. python基础——列表推导式

    python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...

  3. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  4. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  5. Day1 - Python基础1 介绍、基本语法、流程控制

    Python之路,Day1 - Python基础1   本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...

  6. [python] 基础工具介绍好文推荐

    Github上有个哥们写的,还不错,mark一下: https://github.com/lijin-THU/notes-python/blob/master/index.ipynb 相对全面的介绍了 ...

  7. 一起学Python:列表介绍

    列表介绍 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢? 定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗? 答: 列表 <1&g ...

  8. python基础——列表

    Python列表脚本操作符 列表对 + 和 * 的操作符与字符串相似.+ 号用于组合列表,* 号用于重复列表. 如下所示: Python 表达式 结果 描述 len([1, 2, 3]) 3 长度 [ ...

  9. Python基础-列表推导式

    python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...

随机推荐

  1. 3、js无缝滚动轮播

    另一个无缝滚动轮播,带暂停,由于js是异步,用C面向过程的思想开始会很怪异很怪异,因为当你定时器里面需要执行的函数时间比较长或是有一段延时时,异步的代码会完全不同,但习惯就好了. 这个代码有几个问题, ...

  2. 数据结构和算法总结(一):广度优先搜索BFS和深度优先搜索DFS

    前言 这几天复习图论算法,觉得BFS和DFS挺重要的,而且应用比较多,故记录一下. 广度优先搜索 有一个有向图如图a 图a 广度优先搜索的策略是: 从起始点开始遍历其邻接的节点,由此向外不断扩散. 1 ...

  3. restTemplate设置访问超时

    (一)RestTemplate 客户端 1.RestTemplate 是Spring的封装,需要spring的包 spring-web-3.0.7.RELEASE.jar 2.客户端代码: /** * ...

  4. Unity文档阅读 第三章 依赖注入与Unity

    Introduction 简介In previous chapters, you saw some of the reasons to use dependency injection and lea ...

  5. Java公开课-05.log4j

    log4j 一,log4j简介 1.如果程序中出现异常,我们怎么解决? 01.使用异常处理机制===>异常 (但是使用原则是,能不用异常处理机制,最好不用,怎么办?) 02.通过debug调试 ...

  6. 浅谈服务间通信【MQ在分布式系统中的使用场景】

    解决的问题 一项技术的产生必然是为了解决问题而生,了解了一项技术解决的问题,就能够很轻松的理解这项技术的设计根本,从而更好地理解与使用这项技术. 消息中间件和RPC从根本上来说都是为了解决分布式系统的 ...

  7. JavaScript设计模式Item 1—多态

    多态的实际含义是:同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果.换句话说,给不同的对象发送同一个消息的时候,这些对象会根据这个消息分别给出不同的反馈. 从字面上来理解多态不太容易, ...

  8. selenium的一些使用方法

    新建实例driver = webdriver.Chrome()1.通过标签属性Id查找元素方法:find_element_by_id(element_id)实例:driver.find_element ...

  9. driver匹配元素定位用法大全

    # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By fr ...

  10. Mac下将文件复制到移动硬盘

    在Mac下将移动硬盘格式化成exfat,这样Mac和Windows都可以对移动硬盘进行识别