- 本教程为python3文档解读
- 本教程面向完全型小白,只要你会在电脑上打字,那你就可以看懂。
- 参考视频观看,味道更加:https://space.bilibili.com/186584185/#!/video
- 建议优先阅读本系列的《编程的本质》这一章节。
- 推荐阅读:《跟我读python3文档:016_带你手撕程序,展现一个函数如何从思路到实现》
作者:咖喱py
贯穿始终的理念:别废话,就是干!
往期回顾:
- 自定义函数
- 默认参数
- 关键字参数
文档解读
python3文档第五小节链接地址:5. Data Structures
本章主要讲解5.1. More on Lists(列表的更多信息)这个小节
5.1. More on Lists
本期我们主要讲解数据结构。
之前我们已经接触过数据结构了,比如字符串、列表、字典等,我们知道了他们的基本表现形式,以及他们的特性。比如列表是用方括号括起来的一组数据,本身是可改变的;字符串是特殊的列表,本身不可改变等。
我们还讲过一句话:在python中,一切皆对象。
我们说对象其实就是一种特殊的数据结构,它包含变量和函数。我们把对象里的变量称为属性,把函数称为方法。
既然一切皆对象,列表自然也是对象,列表自然也有变量和函数。
所以,本期我们学习的就是列表里的函数,即:列表的方法。
学函数主要是学什么还记得吗?
- 函数的参数
- 函数的作用
- 函数的返回值
学列表的方法也是这个套路。
在正式学习方法前,我们先来回忆一下之前讲解的列表的知识:
- 列表是一个序列,列表里的每一个值都有一个排序的序号最为下标,这个序号被称为索引值。索引值是从零开始计数的。
- 列表是一个可变序列,我们可以通过索引值来改变指定序号的值。
>>> a = [234, 345, 567]
>>> a[0] = 100
>>> a
[100, 345, 567]
- 我们可以通过切片操作,取得列表指定范围的值
>>> a = [234, 345, 567,789]
>>> a[0 : 2]
[234, 345]
如果不记得这些知识的话,可以翻回往期教程,或是搜索相关关键字学习,尝试独立解决问题。
如果对以上这些知识都没有问题了,那就开始接下来的学习吧~
段落截取(一)
The list data type has some more methods. Here are all of the methods of list objects.
名词解释
methods
方法,也就是我们说的列表内部自带的函数。
段落大意
列表类型有很多方法,我们将全部介绍。
作者:咖喱py
知识点:数据类型的内部方法调用,都是以数据(或变量名)+点+方法名的方式调用。
形式如下:list.append(x)
这里你要时刻记得,“方法”就是函数!之后我们要按照学函数的步骤,学习“方法”
列表方法简介
- list.append(x)
- 作用:通过给列表末尾添加单一数据,改变列表。
我们单从方法名也能看出他的作用,就是在末尾添加的意思。
这里要注意单一的意思,指的是列表只是添加了一个索引值的数据,但是这个索引值所对应的数据可以是任何类型。比如list。 - 参数:任意数据
- 返回值:None
None你可以暂时理解为没有的意思。也就是没有返回值。
你要时刻记住一点,作用和返回值是两码事。
作用指的是它产生的效果,比如在屏幕上打印出一句话,比如改变变量的值。
返回值指的是在一个函数中return语句指定的值。你可以通过它来指定任何值来当作函数的返回值。
举例:
>>> list1 = ['galipy', 'python']
>>> list1.append('jianshu')
>>> list1
['galipy', 'python', 'jianshu']
思考:
添加一个列表会发生什么?
>>> list1 = ['galipy', 'python']
>>> list1.append(['jianshu', 'galipython'])
- list.extend(iterable)
- 作用:在列表末尾扩展一个可迭代对象
这里比较难理解的是可迭代对象这个概念,目前你可以简单理解为包含多个数据的数据类型。比如:列表。 - 参数:可迭代对象
想想看我们之前讲过的一个可以生成可迭代对象的函数range( )。 - 返回值:None,即没有返回值。
举例:
>>> list1 = ['galipy', 'python']
>>> list2 = ['Google', 'baidu']
>>> list1.extend(list2)
>>> list1
['galipy', 'python', 'Google', 'baidu']
思考:
我们要注意区别append和extend两个方法的区别。如果两个方法的参数传入的都是一个列表,他们有什么不同吗?自己试试,对比看看。
还记得range( )这个函数吗?我们说它也会生成可迭代对象,如果把它作为extend( )方法的参数,会发生什么?
>>> list1 = ['galipy', 'python']
>>> list1.extend(range(1,5))
>>> list1
- list.insert(i, x)
- 作用:将指定对象插入列表的指定位置。
- 参数:
i -- 对象x需要插入的索引位置。
x -- 要插入列表中的对象。 - 返回值:None
举例:
>>> list1 = ['galipy', 'python', 'google']
>>> list1.insert(1, 'Baidu')
>>> list1
['galipy', 'Baidu', 'python', 'google']
- list.remove(x)
作用:移除列表中某个值的第一个匹配项。
这里要注意“第一个”这个词。
在列表中,可能会存在相同的值,但remove方法会移除第一个匹配项。参数:列表中的一个值
返回值:None
举例:
>>> list1 = ['galipy', 'python', 'google', 'python']
>>> list1.remove('python')
>>> list1
['galipy', 'google', 'python']
- list.pop([i])
- 作用:移除列表中的某一项。默认是移除最后一项。
- 参数:索引值,有默认参数。
- 返回值:被移除的那项。
举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list1.pop( ) #移除默认项
'baidu'
>>> list1 #打印列表
['galipy', 'python', 'google']
>>> list1.pop(1) #移除指定项
'python'
>>> list1 #打印列表
['galipy', 'google']
注意区分remove和pop,尤其是他们的参数和返回值的区别。
- list.clear()
- 作用:清空列表
- 参数:无
- 返回值:无
举例:
>>> list1 = ['galipy', 'python', 'google']
>>> list1.clear( )
>>> list1
[ ]
- list.index(x[, start[, end]])
- 作用:查看列表内,某个值的索引值。
- 参数:
x -- 指列表内的值。
start -- 起始范围下标(可选)
end -- 结束范围下标(可选)
返回值:索引值
举例:
>>> list1 = ['galipy', 'python', 'google']
>>> list1.index('galipy')
0
>>> list1
['galipy', 'python', 'google']
>>> list1.index('galipy', 1, 2) #限定错误范围
Traceback (most recent call last):
File "", line 1, in
ValueError: 'galipy' is not in list
- list.count(x)
- 作用:统计列表内某个值在列表中出现的次数。
- 参数:列表内某个值
- 返回值:出现次数
举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu', 'python']
>>> list1.count('python')
2
- list.sort(key=None, reverse=False)
- 作用:用于对原列表进行排序,如果key指定其他函数作为参数,则使用指定的函数规则进行比较。
- 参数:
key -- 规则函数
reverse -- 排序是否翻转,默认False,不翻转。
注意,这相当于有默认值的参数。 - 返回值:None
举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list1.sort( )
>>> list1
['baidu', 'galipy', 'google', 'python']
注意排序结果,他是按照首字母顺序排列的,如果首字母相同,看下一个字母。
- list.reverse()
- 作用:翻转列表
- 参数:无
- 返回值:None
举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list1.reverse( )
>>> list1
['baidu', 'google', 'python', 'galipy']
- list.copy()
- 作用:复制列表
- 参数:无
- 返回值:复制的新列表
举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list2 = list1.copy( )
>>> list2
['galipy', 'python', 'google', 'baidu']
以后你还会遇到很多数据类型,学习很多方法,但它们很多都与列表的方法类似,所以,
请背诵以上这些方法!
别废话,就是干!
还不快点赞!