跟我读python3文档:019_数据结构(5. Data Structures)上

  • 本教程为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中,一切皆对象。
我们说对象其实就是一种特殊的数据结构,它包含变量和函数。我们把对象里的变量称为属性,把函数称为方法。
既然一切皆对象,列表自然也是对象,列表自然也有变量和函数。
所以,本期我们学习的就是列表里的函数,即:列表的方法。

学函数主要是学什么还记得吗?

  • 函数的参数
  • 函数的作用
  • 函数的返回值

学列表的方法也是这个套路。

在正式学习方法前,我们先来回忆一下之前讲解的列表的知识:

  1. 列表是一个序列,列表里的每一个值都有一个排序的序号最为下标,这个序号被称为索引值。索引值是从零开始计数的。
  2. 列表是一个可变序列,我们可以通过索引值来改变指定序号的值。
>>> a = [234, 345, 567]
>>> a[0] = 100
>>> a
[100, 345, 567]
  1. 我们可以通过切片操作,取得列表指定范围的值
>>> 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)

这里你要时刻记得,“方法”就是函数!之后我们要按照学函数的步骤,学习“方法”

列表方法简介

  1. list.append(x)
  • 作用:通过给列表末尾添加单一数据,改变列表。
    我们单从方法名也能看出他的作用,就是在末尾添加的意思。
    这里要注意单一的意思,指的是列表只是添加了一个索引值的数据,但是这个索引值所对应的数据可以是任何类型。比如list。
  • 参数:任意数据
  • 返回值:None
    None你可以暂时理解为没有的意思。也就是没有返回值。
    你要时刻记住一点,作用返回值是两码事。
    作用指的是它产生的效果,比如在屏幕上打印出一句话,比如改变变量的值。
    返回值指的是在一个函数中return语句指定的值。你可以通过它来指定任何值来当作函数的返回值。

举例:

>>> list1 = ['galipy', 'python']
>>> list1.append('jianshu')
>>> list1
['galipy', 'python', 'jianshu']

思考:
添加一个列表会发生什么?

>>> list1 = ['galipy', 'python']
>>> list1.append(['jianshu', 'galipython'])


  1. 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


  1. list.insert(i, x)
  • 作用:将指定对象插入列表的指定位置。
  • 参数:
    i -- 对象x需要插入的索引位置。
    x -- 要插入列表中的对象。
  • 返回值:None

举例:

>>> list1 = ['galipy', 'python', 'google']
>>> list1.insert(1, 'Baidu')
>>> list1
['galipy', 'Baidu', 'python', 'google']


  1. list.remove(x)
  • 作用:移除列表中某个值的第一个匹配项。
    这里要注意“第一个”这个词。
    在列表中,可能会存在相同的值,但remove方法会移除第一个匹配项。

  • 参数:列表中的一个值

  • 返回值:None
    举例:

>>> list1 = ['galipy', 'python', 'google', 'python']
>>> list1.remove('python')
>>> list1
['galipy', 'google', 'python']

  1. list.pop([i])
  • 作用:移除列表中的某一项。默认是移除最后一项。
  • 参数:索引值,有默认参数。
  • 返回值:被移除的那项。
    举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list1.pop( )                                              #移除默认项
'baidu'
>>> list1                                                     #打印列表
 ['galipy', 'python', 'google']
>>> list1.pop(1)                                              #移除指定项
'python'
>>> list1                                                     #打印列表
['galipy',  'google']

注意区分remove和pop,尤其是他们的参数和返回值的区别。


  1. list.clear()
  • 作用:清空列表
  • 参数:无
  • 返回值:无
    举例:
>>> list1 = ['galipy', 'python', 'google']
>>> list1.clear( )
>>> list1
[ ]

  1. 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

  1. list.count(x)
  • 作用:统计列表内某个值在列表中出现的次数。
  • 参数:列表内某个值
  • 返回值:出现次数
    举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu', 'python']
>>> list1.count('python')
2

  1. list.sort(key=None, reverse=False)
  • 作用:用于对原列表进行排序,如果key指定其他函数作为参数,则使用指定的函数规则进行比较。
  • 参数:
    key -- 规则函数
    reverse -- 排序是否翻转,默认False,不翻转。
    注意,这相当于有默认值的参数。
  • 返回值:None
    举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list1.sort( )
>>> list1
['baidu', 'galipy', 'google', 'python']

注意排序结果,他是按照首字母顺序排列的,如果首字母相同,看下一个字母。


  1. list.reverse()
  • 作用:翻转列表
  • 参数:无
  • 返回值:None
    举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list1.reverse( )
>>> list1
['baidu', 'google', 'python', 'galipy']

  1. list.copy()
  • 作用:复制列表
  • 参数:无
  • 返回值:复制的新列表
    举例:
>>> list1 = ['galipy', 'python', 'google', 'baidu']
>>> list2 = list1.copy( )
>>> list2
['galipy', 'python', 'google', 'baidu']

以后你还会遇到很多数据类型,学习很多方法,但它们很多都与列表的方法类似,所以,
请背诵以上这些方法!

别废话,就是干!
还不快点赞!

你可能感兴趣的:(跟我读python3文档:019_数据结构(5. Data Structures)上)