• 第3章 列表简介


    第3章 列表简介

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

    3.1 列表是什么

    1 bicycles = ['trek','cannondale','redline','specialized']
    2 print(bicycles)

    ①列表由一系列按特定顺序排列的元素组成。你可以创建包含字符串数字的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系

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

    3.1.1 访问列表元素

    1 bicycles = ['trek','cannondale','redline','specialized']
    2 print(bicycles[0])
    3 print(bicycles[0].title())

    ①列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。

    ②要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。如行2

    ③当你请求获取列表元素时,Python只返回该元素,而不包括方括号和引号:

    ④可以对任何列表元素调用字符串方法。如行3,调用字符串的title()

    3.1.2 索引从 0 而不是 1 开始

    1 bicycles = ['trek','cannondale','redline','specialized']
    2 print(bicycles[1])
    3 print(bicycles[3])
    4 print(bicycles[-1])
    5 print(bicycles[-2])

    ①在Python中,第一个列表元素的索引为0,而不是1。

    ②第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。如行2、3

    ③Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为 -1 ,可让Python返回最后一个列表元素。如行4

    ④-1索引在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引。如行5

    3.1.3 使用列表中的各个值

    1 bicycles = ['trek','cannondale','redline','specialized']
    2 message = "My first bicycle was a " + bicycles[0].title() + "."
    3 print(message)

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

    ②可以使用拼接根据列表中的值来创建消息。如行2

     1 #习题1

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

     2 names = ['张**', '赵**', '沈**', '王**']
     3 print(names[0])
     4 print(names[1])
     5 print(names[2])
     6 print(names[3])
     7 #习题2

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

     8 names = ['张**', '赵**', '沈**', '王**']
     9 question = ',吃饭了吗?'
    10 print(names[0]+question)
    11 print(names[1]+question)
    12 print(names[2]+question)
    13 print(names[3]+question)
    14 #习题3

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

    15 commuter_way = ['自行车','地铁','的士','公交']
    16 love = '我最喜欢的通勤方式是'
    17 print(love + commuter_way[1])

    3.2 修改、添加和删除元素

    大多数列表都将是动态的,列表创建后,将随着程序的运行增删元素

    3.2.1 修改列表元素

    1 motorcycles = ['honda', 'yamaha', 'suzuki']
    2 print(motorcycles)
    3 motorcycles[0] = 'ducati'
    4 print(motorcycles)

    ①要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。如行3

    ②可以修改任何列表元素的值,而不仅仅是第一个元素的值。

    3.2.2 在列表中添加元素

    Python提供了多种在既有列表中添加新数据的方式。

    1. 在列表末尾添加元素

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

    ①在列表中添加新元素时,最简单的方式是将元素附加到列表末尾

    ②方法 append() 将元素 添加到了列表末尾,而不影响列表中的其他所有元素。如行3

    ③方法 append() 让动态地创建列表易如反掌,如行5、6、7、8

    2. 在列表中插入元素

    1 motorcycles = ['honda', 'yamaha', 'suzuki']
    2 motorcycles.insert(0, 'ducati')
    3 print(motorcycles)

    ①方法 insert() 可在列表的任何位置添加新元素。但需要指定新元素的索引和值。如行2

    ②insert()使索引后的包括索引的每个元素都右移一个位置。

    3.2.3 从列表中删除元素

    1. 使用 del 语句删除元素

    1 motorcycles = ['honda', 'yamaha', 'suzuki']
    2 print(motorcycles)
    3 del motorcycles[0]
    4 print(motorcycles)
    5 motorcycles = ['honda', 'yamaha', 'suzuki']
    6 print(motorcycles)
    7 del motorcycles[1]
    8 print(motorcycles)

    ①删除已知位置的元素,可使用 del 语句。如行3、7

    ②使用 del 语句将值从列表中删除后,你就无法再访问它了。

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

    1 motorcycles = ['honda', 'yamaha', 'suzuki']
    2 print(motorcycles)
    3 poped_motorcycle = motorcycles.pop()
    4 print(motorcycles)
    5 print(poped_motorcycle)
    6 motorcycles = ['honda', 'yamaha', 'suzuki']
    7 last_owned = motorcycles.pop()
    8 print("The last motorcycle I owned was a " + last_owned.title() + ".")

    ①方法 pop() 可删除列表末尾的元素,并让你能够接着使用它。

    ②将方法 pop() 删除的元素储存到一个变量里,使我们可以使用它,通过使用变量。

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

    1 motorcycles = ['honda', 'yamaha', 'suzuki']
    2 first_owned = motorcycles.pop(0)
    3 print('The first motorcycle I owned was a ' + first_owned.title() + '.')

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

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

    ③如果你不确定该使用 del 语句还是 pop() 方法,下面是一个简单的判断标准:

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

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

    4. 根据值删除元素

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

    ①当不知道要从列表中删除的值所处的位置,只知道要删除的元素的值,可使用方法 remove() 。如行3

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

     1 #习题1

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

     2 names = ['张**', '沈**', '赵**', '王**']
     3 question = ',能一起共进晚餐吗?'
     4 print(names[0] + question)
     5 print(names[1] + question)
     6 print(names[2] + question)
     7 print(names[3] + question)
     8 
     9 #练习2

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

    以完成练习1时编写的程序为基础,在程序末尾添加一条 print 语句,指出哪位嘉宾无法赴约。

    修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。

    再次打印一系列消息,向名单中的每位嘉宾发出邀请。

    10 names = ['张**', '沈**', '赵**', '王**']
    11 question = ',能一起共进晚餐吗?'
    12 print(names[0] + question)
    13 print(names[1] + question)
    14 print(names[2] + question)
    15 print(names[3] + question)
    16 print(names[1] + ",不能共进晚餐。")
    17 names[1] = '周**'
    18 print(names[0] + question)
    19 print(names[1] + question)
    20 print(names[2] + question)
    21 print(names[3] + question)
    22 
    23 #练习3

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

    以完成练习1或练习2时编写的程序为基础,在程序末尾添加一条 print 语句,指出你找到了一个更大的餐桌。

    使用 insert() 将一位新嘉宾添加到名单开头。

    使用 insert() 将另一位新嘉宾添加到名单中间。

    使用 append() 将最后一位新嘉宾添加到名单末尾。

    打印一系列消息,向名单中的每位嘉宾发出邀请。 

    24 names = ['张**', '沈**', '赵**', '王**']
    25 question = ',能一起共进晚餐吗?'
    26 print(names[0] + question)
    27 print(names[1] + question)
    28 print(names[2] + question)
    29 print(names[3] + question)
    30 print(names[1] + ",不能共进晚餐。")
    31 names[1] = '周**'
    32 print(names[0] + question)
    33 print(names[1] + question)
    34 print(names[2] + question)
    35 print(names[3] + question)
    36 print('我找到了一个更大的餐桌。')
    37 names.insert(0,'徐**')
    38 names.insert(2,'志玛**')
    39 names.append('钏**')
    40 print(names[0] + question)
    41 print(names[1] + question)
    42 print(names[2] + question)
    43 print(names[3] + question)
    44 print(names[4] + question)
    45 print(names[5] + question)
    46 print(names[6] + question)
    47 
    48 #练习4

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

    以完成练习 3-6时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。

    使用 pop() 不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。

    对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。

    使用 del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。


    49 names = ['张**', '沈**', '赵**', '王**'] 50 question = ',能一起共进晚餐吗?' 51 print(names[0] + question) 52 print(names[1] + question) 53 print(names[2] + question) 54 print(names[3] + question) 55 print(names[1] + ",不能共进晚餐。") 56 names[1] = '周**' 57 print(names[0] + question) 58 print(names[1] + question) 59 print(names[2] + question) 60 print(names[3] + question) 61 print('我找到了一个更大的餐桌。') 62 names.insert(0,'徐**') 63 names.insert(2,'志玛**') 64 names.append('钏**') 65 print(names[0] + question) 66 print(names[1] + question) 67 print(names[2] + question) 68 print(names[3] + question) 69 print(names[4] + question) 70 print(names[5] + question) 71 print(names[6] + question) 72 print('对不起,我只能邀请2位嘉宾了') 73 sorry_people = names.pop() 74 print(sorry_people + ",对不起,不能一起共进晚餐了!") 75 sorry_people = names.pop() 76 print(sorry_people + ",对不起,不能一起共进晚餐了!") 77 sorry_people = names.pop() 78 print(sorry_people + ",对不起,不能一起共进晚餐了!") 79 sorry_people = names.pop() 80 print(sorry_people + ",对不起,不能一起共进晚餐了!") 81 sorry_people = names.pop() 82 print(sorry_people + ",对不起,不能一起共进晚餐了!") 83 print(names[0] + ",最终仍能一起共进晚餐。") 84 print(names[1] + ",最终仍能一起共进晚餐。") 85 del names[0] 86 del names[0] 87 print(names)

    3.3 组织列表

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

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

    ①列表的 sort() 方法,能够对列表按字母顺序进行排序。如行2

    ②可以与字母顺序相反的顺序排列列表元素,向sort() 方法传递参数reverse=True 。如行5

    ③sort()仅改变列表顺序,并不会返回列表

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

    1 cars = ['bmw', 'audi', 'toyota', 'subaru']
    2 print("Here is the original list:")
    3 print(cars)
    #Here is the original list:
    #['bmw', 'audi', 'toyota', 'subaru']
    4 print(" Here is the sorted list:") 5 print(sorted(cars))
    #Here is the sorted list:
    #['audi', 'bmw', 'subaru', 'toyota']
    6 print(" Here is the original list again:") 7 print(cars)
    #Here is the original list again:
    #['bmw', 'audi', 'toyota', 'subaru']

    ①函数sorted() 能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。如行5

    ②如果你要按与字母顺序相反的顺序显示列表,也可向函数 sorted() 传递参数 reverse=True

    3.3.3 倒着打印列表

    1 cars = ['bmw', 'audi', 'toyota', 'subaru']
    2 print(cars)
    #['bmw', 'audi', 'toyota', 'subaru']
    3 cars.reverse() 4 print(cars)
    #['subaru', 'toyota', 'audi', 'bmw']

    方法 reverse() 可以反转列表元素的排列顺序。

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

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

    3.3.4 确定列表的长度

    1 cars = ['bmw', 'audi', 'toyota', 'subaru']
    2 print(len(cars))
    #4

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

     1 #习题1
     2 """
     3 放眼世界:想出至少 5个你渴望去旅游的地方。
     4 将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
     5 按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python列表。
     6 使用 sorted() 按字母顺序打印这个列表,同时不要修改它。
     7 再次打印该列表,核实排列顺序未变。
     8 使用 sorted() 按与字母顺序相反的顺序打印这个列表,同时不要修改它。
     9 再次打印该列表,核实排列顺序未变。
    10 使用 reverse() 修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
    11 使用 reverse() 再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
    12 使用 sort() 修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。
    13 使用 sort() 修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
    14 """
    15 travels = ['paris', 'greece', 'provence', 'london', 'tokyo']
    16 print(travels)
    17 print(sorted(travels))
    18 print(travels)
    19 print(sorted(travels,reverse=True))
    20 print(travels)
    21 travels.reverse()
    22 print(travels)
    23 travels.reverse()
    24 print(travels)
    25 travels.sort()
    26 print(travels)
    27 travels.sort(reverse=True)
    28 print(travels)
    29 
    30 #习题2
    31 #晚餐嘉宾:使用 len() 打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。
    32 names = ['张**', '沈**', '赵**', '王**']
    33 print(len(names))
    34 #习题3
    35 """
    36 尝试使用各个函数:想想可存储到列表中的东西,如山岳、河流、国家、城市、语言或你喜欢的任何东西。
    37 编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。
    38 """
    39 citys = ['shanghai', 'hunan', 'tianjin', 'beijing']
    40 print(citys[1])
    41 print(citys[-1])
    42 print(citys[2].title() + ' is where I work.')
    43 citys[1] = 'hubei'
    44 print(citys)
    45 citys.append('hunan')
    46 print(citys)
    47 citys.insert(3,'shenzhen')
    48 print(citys)
    49 del citys[-1]
    50 print(citys)
    51 city = citys.pop()
    52 print(city)
    53 print(citys)
    54 city = citys.pop(1)
    55 print(city)
    56 print(citys)
    57 citys.remove('shenzhen')
    58 print(citys)
    59 citys.append('hunan')
    60 citys.append('shenzhen')
    61 citys.append('beijing')
    62 print(citys)
    63 citys.sort()
    64 print(citys)
    65 citys.sort(reverse=True)
    66 print(citys)
    67 print(sorted(citys))
    68 print(citys)
    69 print(sorted(citys,reverse=True))
    70 print(citys)
    71 citys.reverse()
    72 print(citys)
    73 print(len(citys))

    3.4 使用列表时避免索引错误

     1 motorcycles = ['honda', 'yamaha', 'suzuki']
     2 print(motorcycles[3])
     3 """
     4 Traceback (most recent call last):
     5   File "E:/python/代码/caogao.py", line 3, in <module>
     6     print(motorcycles[3])
     7 IndexError: list index out of range
     8 """
     9 print(motorcycles[-1])
    #suzuki
    10 motorcycles = [] 11 print(motorcycles[-1]) 12 """ 13 Traceback (most recent call last): 14 File "E:/python/代码/caogao.py", line 12, in <module> 15 print(motorcycles[-1]) 16 IndexError: list index out of range 17 """

    索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索引减1,然后再次运行程序,看看结果是否正确。如行2

    仅当列表为空时,这种访问最后一个元素的方式才会导致错误。如行11

    发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。列表可能与你以为的截然不同,在程序对其进行了动态处理时尤其如此。通过查看列表或其包含的元素数,可帮助你找出这种逻辑错误。

    3.5 小结

     

  • 相关阅读:
    Running APP 使用说明
    Android 控件八 WebView 控件
    Android 控件七 ImageView 控件
    Android 控件六 CheckBox 控件
    Android 控件五 RadioButton 控件
    Android 控件四 EditText 控件
    Android 控件三 TextView 控件实现 Button
    Android 控件二 Button
    Android 基础控件演示实例
    Android 控件一 TextView
  • 原文地址:https://www.cnblogs.com/yiyezhiqiu1/p/13516102.html
Copyright © 2020-2023  润新知