练习 34 获取列表元素

列表(list)真的非常有用,前提是你要能获取到它们里面的内容。你已经能够按顺序遍历列表中的元素,但是如果你要取其中的第5个元素,你该怎么操操做?你需要知道如何获取一个列表里面的元素。下面是如何获取列表中第一个元素的方法:

animals = ['bear', 'tiger', 'penguin', 'zebra']
bear = animals[0]

你创建了一个动物列表,然后用 0 来取列表的第一个元素?!为什么呢?因为数学就是这样的,Python 列表的第一个元素是从序号 0 开始,而不是从 1 开始。这样虽然看起来有点奇怪,但是好处多多。

最好的解释可能是它反映了人使用数字和程序使用数字的区别。

想象一下你正在观察列表中的四个动物(熊,老虎,企鹅,斑马)赛跑,它们纷纷冲过了终点线,我们也得到了它们的次序。比赛非常激烈,因为最终它们都没有吃掉彼此。你的一个朋友来晚了,他想知道哪个动物胜出了。他肯定会说“谁得了第一名?”而不是“谁是第零个?”

这是因为动物们的次序非常重要。你不能在没有第一名的情况下就有第二名,同理没有第二名也不可能有第三名。而第零名毫无意义,因为零意味着什么都没有。你怎么可能在异常比赛里面什么都没有呢?这说不通。我们把这些能排序的数字叫做序数(ordinal numbers),因为它们能代表一定的顺序。

然而,程序不会这么想。它们能从一个列表中任意取出一个元素来。对程序而言,动物们的列表更像是一叠卡片。如果它们想要老虎,就直接去拿。如果想要斑马,也能直接去拿。这就需要这些元素能有一个恒定的地址(address),或者索引(index),以便程序能够以一种随机的方式把它们从列表中拿出来。最好的办法就是让指标(indices)从 0 开始。相信我,这样在数学上更为便捷。这种数字叫做基数(cardinal number),它意味着你可以随机取数,所以必须要有一个 0 元素。

ai酱注:这里感觉老肖没太解释清楚,在百度知道上看到一个回答,可以供大家参考:https://zhidao.baidu.com/question/1693009495708807428.html

不知道以上解释能否帮助你理解列表?很简单,每次你对自己说,“我要第 3 个动物,”的时候,把 3 这个序数通过 -1 转换成 2 这个基数就行了。第 3 个动物就是索引为 2 的企鹅。你一生都在使用序数,现在你需要用基数来思考,只用减去 1 就行,没那么难。

记住:序数 == 排序,第一;基数 == 随机卡片,0。
ordinal == ordered, 1st; cardinal == cards at random, 0.

让我们练习一下。用如下动物列表,跟着我列出来的序数或基数要求,写出你从列表中取到的动物。记住,如果我说“第1个”(1st)、“第2个”(2nd),那我就是在用序数,直接减1就可以了。如果我说“第1位”(at 1),那我就是在用基数,直接按这个数字取就行。

animals = ['bear', 'python3.6', 'peacock', 'kangaroo', 'whale', '

(注:为了不造成混淆,以下内容保留英文原文)

1、The animal at 1.
2、The third (3rd) animal.
3、The first (1st) animal.
4、The animal at 3.
5、The fifth (5th) animal.
6、The animal at 2.
7、The sixth (6th) animal.
8、The animal at 4.

使用完整的表述格式进行回答,例如: “The first (1st) animal is at 0 and is a bear.” 然后反过来说一遍: “The animal at 0 is the 1st animal and is a bear.”

用 python 验证你的答案。

附加练习

1、基于你所学的不同类型数字之间的区别, 你能解释为什么“2010年1月1日”中的2010年真的是2010年而不是2009年?(提示:你不能随机去取年份)
2、多写一些列表,搞明白列表元素的索引,知道你能够准确掌握。
3、用 python 验证你的答案。

python 随机获取列表的元素_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way相关推荐

  1. 如何获取sharepoint列表_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way

    练习 34 获取列表元素 列表(list)真的非常有用,前提是你要能获取到它们里面的内容.你已经能够按顺序遍历列表中的元素,但是如果你要取其中的第5个元素,你该怎么操操做?你需要知道如何获取一个列表里 ...

  2. python中如何编写代码输入多个数据并把它们放在一个列表中去_这59条编写高质量Python代码的方法你知道吗?...

    这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码的59个有效方法>,感觉还不错,具有很大的指导价值. 下面将以最简单的方式记录这59条建议,并在大部 ...

  3. 百钱买百鸡python编程列表推导式_使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?...

    [程序题]编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n [单选题]患者男,67岁.确诊为原发性支气管肺癌,为行手术 ...

  4. python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)

    开篇 之前已经提到过,在Python中,一共有六大数据类型 本期就开始学习Python的六个标准数据类型中的字符串. 什么是字符串 在Python中,字符串是用一对引号(单引号/双引号均可)包裹起来的 ...

  5. python获取word页数_用程序获取word页码方法汇总

    ## 背景说明 最近参与了一个档案管理系统,使用java开发,部署在centos,其中的一个功能需要获取到word文件准确的页码,现在将尝试过的方法汇总如下: Apache POI 由于系统是jav ...

  6. python爬取路况信息查询_如何一键获取高德交通态势数据

    发送原创文章至admin@caup.net,可申请注册邀请码 您需要 登录 才可以下载或查看,没有帐号?注册方式 x W56N8WNYzvv0Yeow.jpg (86.04 KB, 下载次数: 25) ...

  7. class 原生js获取父元素_原生js获取class

    //使用原生js时,通过class名称就可以得到相应的class名称标签组封装的函数 //定义一个函数getClass(oParent,aClass); function getClass(oPare ...

  8. python中脚本是指什么_【学习猿地】初识python脚本 #千万别看,我怕你控制不住...

    >编写python程序的文件,称为python的脚本或程序 >要求当前的python脚本的文件后缀名必须是.py #### pycharm使用注意 > 需要明确的知道你当前pycha ...

  9. python3 列表取交集_常用序列数据类型列表

    python中有列表.元组.集合.字典这四种可以存放多个数据元素的集合,他们在总体功能上都起着存放数据的作用,却都有着各自的特点.本片文章中我们会对列表的用法做详细说明. 演示环境: python3. ...

最新文章

  1. 用了 3 年 Apollo,最后我选择了 Nacos,原因不多说了
  2. vue 固定名称 打包时_vuecli3 配置多环境打包
  3. FlinkShell用kill -9杀不掉
  4. #279. [SYZOI Round1] 滑稽♂树(树状数组套主席树)
  5. matlab busy 如何看进度,matlab solve 之后不出结果不报错,状态一直显示busy
  6. ubuntu16.04中文乱码解决方案
  7. linux,让网卡随着系统启动自动生效
  8. 【Python】EXCEL转Json
  9. java 开发平台下载,JAVA开发平台和JAVA开发工具下载
  10. win10安装tomcat7的安装与配置【详细教程】
  11. 腾讯云TDSQL TCP干货
  12. 开发公链社群币种钱包系统软件
  13. opengles特效之飘扬的旗帜
  14. 宇视科技android面试_在宇视科技工作是怎样的体验?
  15. Revit 二次开发前景
  16. 《东周列国志》第六十二回 诸侯同心围齐国 晋臣合计逐栾盈
  17. 操作系统实验报告 实验1 VMware虚拟机配置与linux基本命令(答案全)
  18. DES加密与解密代码
  19. Linux下Tomcat的安装部署
  20. 微信小程序源码大集004---小程序实现大转盘 仿天猫抽奖 跑马灯效果(有图有源码)

热门文章

  1. java是什么偏旁部首_Python实现获取汉字偏旁部首的方法示例【测试可用】
  2. 幼儿课外活动游戏_幼儿园的户外活动游戏有哪些?
  3. 设置python编程环境_JupyterNotebook设置Python环境的方法步骤
  4. micropython实现多任务_python多任务处理
  5. Linux命令详解:./configure、make、make install 命令
  6. Qt / 对 C++ 的拓展有哪些
  7. Linux下getopt()函数的简单使用
  8. 判断字符串格式_Blind_pwn之格式化字符串
  9. 河南工业大学计算机网络技术,河南工业大学2019年硕士研究生入学信息科学与工程学院计算机网络自命题考试大纲...
  10. 计算机科学的大部分研究是基于,计算机科学