做者 | 弗拉德
来源 | 弗拉德(公众号:fulade_me)python
列表,在其余语言中又被称为数组,是由一系列按特定顺序排列的元素组成。你能够建立包含字母表中全部字母、数字0~9或全部家庭成员姓名的列表。你也能够建立几个列表,把这几个列表又放在一个列表内。
在Python中,用方括号[]
来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例,这个列表包含几种常见的水果:git
fruits = ['Apple','Banana','Pear','Orange'] print(fruits) ['Apple','Banana','Pear','Orange']
列表是有序的数据集合,每个元素都有一个位置参数。好比上面的fruits
列表里面,其中Apple
的位置参数是0
,Banana
位置参数是1
。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
例如,下面的代码从列表fruits
中选出第一种水果:github
fruits = ['Apple','Banana','Pear','Orange'] print(fruits[0]) Apple
全部的列表位置参数都是从0
开始的而不是从1开始的,对于初学者,这个必定要记牢。若是在编码过程当中发现取出的元素跟本身预期的不同,请看看你是否犯了这种简单的错误。
第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,均可将其位置减1
,并将结果做为索引。例如,要访问第4个列表元素,可以使用索引3
。
下面的代码访问索引1
和3
处的水果:数组
fruits = ['Apple','Banana','Pear','Orange'] print(fruits[1]) print(fruits[3]) Banana Orange
Python为访问最后一个列表元素提供了一种特殊语法。经过将索引指定为-1
,可以让Python返回最后一个列表元素:app
fruits = ['Apple','Banana','Pear','Orange'] print(fruits[-1]) Orange
这里返回的是Orange
。这种语法颇有用,由于你常常须要在不知道列表长度的状况下访问最后的元素。
这种约定也适用于其余负数索引,例如:索引-2
返回倒数第二个列表元素, 索引-3
返回倒数第三个列表元素,以此类推。函数
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
例如,假设有一个水果列表,其中的第一个元素为Apple
,如何修改它的值呢?ui
fruits = ['Apple','Banana','Pear','Orange'] print(fruits[0]) print(fruits) Apple ['Apple','Banana','Pear','Orange'] # 开始把第一个元素修改成 Cherry fruits[0] = 'Cherry' print(fruits[0]) print(fruits) Cherry ['Cherry','Banana','Pear','Orange']
你可能出于不少缘由要在列表中添加新元素。好比商场里又新增长了一种水果,须要在fruits
里面中再新增一种水果。Python提供了多种在既有列表中添加新数据的方式。
1.在列表末尾添加元素
在列表中添加新元素时,最简单的方式是将元素附加到列表末尾。编码
fruits = ['Apple','Banana','Pear','Orange'] print(fruits) fruits.append('Cherry') print(fruits)
方法append()
将元素Cherry
添加到了列表末尾,而不影响列表中的其余全部元素。code
['Apple','Banana','Pear','Orange'] ['Apple','Banana','Pear','Orange','Cherry']
append()
能够很好的知足咱们动态建立数组的需求。例如,咱们能够先建立一个空的列表,在使用一系列的append()
语句来动态的添加元素。
例如:排序
fruits = [] fruits.append('Apple') fruits.append('Banana') fruits.append('Pear') print(fruits) ['Apple','Banana','Pear']
这种建立方式比较常见,由于不少时候,咱们在代码的执行过程当中才会知道哪些元素须要添加到列表中,哪些元素不须要添加。
2.在列表中插入元素
使用方法insert()
可在列表的任何位置添加新元素。可是,你须要指定新元素的索引和值。
fruits = ['Apple','Banana','Pear'] fruits.insert(0,'Orange') print(fruits) ['Orange','Apple','Banana','Pear']
在该实例中,Orange
被插入到了索引为0
的这个位置。这种操做会使列表内的其余的每一个元素都右移一个位置。
须要注意的是:插入数据的索引不能超过列表当前最大的索引值,若是咱们执行fruits.insert(10,'Orange')
就会报错。你能够试一下。
咱们常常须要从列表中删除一个元素,好比说有Apple
这种水果由于缺货须要下架了,咱们须要将Apple
从列表中移除掉。你能够根据位置或值来删除列表中的元素。
1.使用del语句删除元素
若是知道要删除的元素在列表中的位置,可直接使用del
语句。
fruits = ['Apple','Banana','Pear'] print(fruits) ['Apple','Banana','Pear'] del fruits[0] print(fruits) ['Banana','Pear']
使用del
可删除任何位置处的列表元素,条件是知道其索引。下例演示了如何删除fruits
列表中的第二个元素
fruits = ['Apple','Banana','Pear'] print(fruits) ['Apple','Banana','Pear'] del fruits[1] print(fruits) ['Apple','Pear']
从输出来看,第二个元素已经被删除了。
2.使用方法pop()删除元素
有时候,你要将元素从列表中删除,并接着使用它的值。好比你下架了某种水果,须要把这种水果放入到明天的采购列表中。
方法pop()
可删除列表末尾的元素,并让你可以接着使用它。
fruits = ['Apple','Banana','Pear'] print(fruits) poped_fruit = fruits.pop() print(fruits) ['Apple', 'Banana'] print(poped_fruit) Pear
执行pop()
方法后,原数组最后一个元素被移除掉且最后一个元素做为返回值被返回。
3.pop列表中任何位置处的元素
想必你已经猜到了,咱们只须要在pop()
方法内传入想移除的元素索引就能够。
fruits = ['Apple','Banana','Pear'] print(fruits) ['Apple', 'Banana', 'Pear'] first_fruit = fruits.pop(0) print(first_fruit) Apple
别忘了,每当你使用pop()时,被弹出的元素就再也不在列表中了。
若是你不肯定该使用del语句仍是pop()
方法,下面是一个简单的判断标准: 若是你要从列表中删除一个元素,且再也不以任何方式使用它,就使用del
语句,若是你要在删除元素后还能继续使用它,就使用方法pop()
。
4.根据值删除元素
有时候,咱们并不知道要从列表中删除的值所处的位置。若是你只知道要删除的元素的值,可以使用remove()
方法。
fruits = ['Apple','Banana','Pear'] print(fruits) ['Apple', 'Banana', 'Pear'] fruits.remove('Apple') print(fruits) ['Banana', 'Pear']
方法remove()
只删除在列表中出现的第一个指定的值。也就是说假如Apple
在fruits
列表中出现了屡次,调用remove()
方法,只会删除第一个Apple
。
fruits = ['Apple','Banana','Pear','Apple'] print(fruits) ['Apple', 'Banana', 'Pear','Apple'] fruits.remove('Apple') print(fruits) ['Banana', 'Pear','Apple']
在咱们建立的列表中,元素的排列顺序经常是没法预测的。由于咱们并不是总能控制用户提供数据的顺序。咱们又常常须要以特定的顺序呈现信息。有时候,你但愿保留列表元素最初的排列顺序,而有时候又须要调整排列顺序。Python提供了不少组织列表的方式,可根据具体状况选用。
Python方法sort()
让你可以轻松地对列表进行排序。假设你有一个水果列表,并要让其中的水果按字母顺序排列。为简化这项任务,咱们假设该列表中的全部值都是小写的。
fruits = ['pear','banana','apple'] print(fruits) ['pear', 'banana', 'apple'] fruits.sort() print(fruits) ['apple', 'banana', 'pear']
方法sort()
永久性地修改了列表元素的排列顺序。如今,fruits
是按字母顺序排列的,再也没法恢复到原来的排列顺序。
咱们还能够按与字母顺序相反的顺序排列列表元素,为此,只需向sort()
方法传递参数reverse=True
便可。
fruits.sort(reverse=True) print(fruits) ['pear', 'banana', 'apple']
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可以使用函数sorted()
。函数sorted()
让你可以按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。下面尝试对fruits
列表调用这个函数。
fruits = ['pear','banana','apple'] print(fruits) ['pear', 'banana', 'apple'] print(sorted(fruits)) ['apple', 'banana', 'pear'] # 再一次输出 fruits print(fruits) ['pear', 'banana', 'apple']
注意,调用函数sorted()
后,列表元素的排列顺序并无变。若是你要按与字母顺序相反的顺序显示列表,也可向函数sorted()
传递参数reverse=True
。
在并不是全部的值都是小写时,按字母顺序排列列表要复杂些,这个问题咱们后面再详细解答。
要反转列表元素的排列顺序,可以使用方法reverse()
。假设fruist
列表是按购买时间排列的,可轻松地按相反的顺序排列其中的水果:
fruits = ['pear','banana','apple'] print(fruits) ['pear', 'banana', 'apple'] fruits.reverse() print(fruits) ['apple', 'banana', 'pear']
reverse()
不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。
方法reverse()
永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此 只需对列表再次调用reverse()便可
使用函数len()
可快速获悉列表的长度
fruits = ['pear','banana','apple'] len(fruits) 3
获取列表的长度在开发过程当中颇有用,好比咱们利用len()
方法一下就能够获取到当前有多少种水果正在销售。
7-1 将一些朋友的姓名存储在一个列表中,并将其命名为 names。依次访问该列表中的每一个元素,从而将每一个朋友的姓名都打印出来。
7-2 嘉宾名单: 若是你能够邀请任何人一块儿共进晚餐(不管是在世的仍是故去的),你会邀请哪些人?请建立一个列表,其中包含至少 3 个你想邀请的人,而后,打印列表。
7-3 修改嘉宾名单:你刚得知有位嘉宾没法赴约,所以须要另外邀请一位嘉宾。修改嘉宾名单,将没法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
而后再一次打印这个列表。
7-4 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想一想你还想邀请哪三位嘉宾。
使用 insert()将一位新嘉宾添加到名单开头。
使用 insert()将另外一位新嘉宾添加到名单中间。
使用 append()将最后一位新嘉宾添加到名单末尾。
7-5 缩减名单: 你刚得知新购买的餐桌没法及时送达,所以只能邀请两位嘉宾。 使用pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一下。
7-7 放眼世界: 想出至少 5 个你渴望去旅游的地方。将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python 列表。
使用 sorted()按字母顺序打印这个列表,同时不要修改它。再次打印该列表,核实排列顺序未变。
使用 sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。再次打印该列表,核实排列顺序未变。
使用 reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
使用 reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
使用 sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。
使用 sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
想查看做业答案能够去个人Githu仓库