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

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


往期回顾

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

文档解读

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']

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,543评论 1 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,563评论 18 139
  • 这只是一个小镇,是我从小长大的地方,她不算繁华,没有过于宽阔的街道和看到脖子酸的高楼大厦,没有喧嚣的车鸣,也没有...
    玖歌不是哥阅读 165评论 0 2
  • w出生的第三天被自己的亲生母亲丢弃在乡村的田埂上。她哭了两个小时被路过的好心人抱了回去自己养。包裹她的衣服里没有任...
    勤奋的小小怪兽阅读 449评论 0 1