美文网首页程序员
跟我读python3文档:019_数据结构(5. Data St

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

作者: 咖喱py | 来源:发表于2017-09-05 00:18 被阅读128次

    贯穿始终的理念:别废话,就是干!


    往期回顾

    • 自定义函数
    • 默认参数
    • 关键字参数

    文档解读

    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 "<stdin>", line 1, in <module>
    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 St

        本文链接:https://www.haomeiwen.com/subject/syadjxtx.html