精华内容
下载资源
问答
  • 转自同名微信公众号 在前面的内容,我们接触到的要么是单个的...容器类型三兄弟:列表、元组、字典 在《机器猫》,哆啦a梦有一个魔法口袋,可以里面掏各种神奇的宝贝。四次元口袋。又名四次元百宝袋、四维...

    d1f20f395285e5141016c023222187f8.png

    转自同名微信公众号

    在前面的内容里,我们接触到的要么是单个的数字,要么是range()函数返回的等差数列。

    但现实生活中,我们碰到的往往是大量无规律的数字。比如一年内每天的气温,比如某次数学考试的成绩。

    d5246635307b683b70fa2863a1a578a9.png

    在Python里,怎么保存这样大量无规律的数据呢?


    容器类型三兄弟:列表、元组、字典

    在《机器猫》里,哆啦a梦有一个魔法口袋,可以从里面掏出各种神奇的宝贝。

    9c7ace454e8ad326db3b44ff6761dcad.png

    四次元口袋。又名四次元百宝袋、四维口袋,正式名称是“机械人专用四次元空间内藏秘密道具格纳口袋”

    在python里,也有类似的魔法口袋。我们习惯上称为容器类型。

    三种最基础的容器类型分别是

    列表类

    list1 = [99,100,98.5,100,97,98]

    元组类

    tup1 = (99,100,98.5,100,97,98)

    字典类

    dict1 = {1:99,2:100,3:98.5,4:100,5:97,6:98}

    上面的程序,就是分别把1-6号同学的成绩“装进”了列表类,元组类和字典类的实例里。

    而这三种基本容器类型中,列表类又是最基本,也是应用最广泛的。所以,我们先来介绍列表类。


    实例:“我想有个家,一个不需要多大的地方”

    在介绍列表之前,我们需要先理解:每个实例都有一个家

    实例的概念可以复习《02 只要5分钟,一文理解Python基本概念》。

    726bb2f36df748dff865d04433c4a532.png

    《我想有个家》是潘美辰的代表作品之一。1990年这首歌曲获得了第一届台湾金曲奖年度最佳歌曲奖。

    如 a = 6,6是数字类的一个实例。

    Python提供了一个内置函数 id( ),可以返回实例的家的地址。

    1349dd07adb8eaa70ca8896ae03dc18e.png

    我们看到,94789371651008就是整型实例 6 的地址。

    用一个简陋的火柴盒来表示6的家。

    家的地址是94789371651008

    6就住在家里

    而铅笔就是变量a,它指向了 这个地址。

    54831d90323c9405f9d468c466546679.png

    列表

    那列表是什么呢?

    列表就是编好了号的一些房子。

    27049af5fd6bf3fe0dc0379d259cdce1.png

    需要特别注意的几点:

    • “房子”的编号(称为下标索引),并不是“房子”在电脑里的地址!
      就像某土豪在全国各地都有房子。土豪给这些房子编了号。
      0号房子,1号房子,……
    • 编号是从0开始的
    • 入住“房子”的实例(称为元素)可以是不同类型的
    list3 = ['hello',89,90,[1,2,3],90.234]

    list3里,就有整型,浮点型,字符串型的实例,甚至还有另一个列表实例[1,2,3]。只要用逗号分隔开就行。

    我们可以一开始就安排几个实例入住

    list1 = [99,100,98.5,100,97,98]

    也可以先没有实例,之后安排实例入住。

    list2 = []
    list2[0] = 1
    list2[1] = 2

    当然,也可以把原来入住的实例赶出去,换成新的实例。

    list1 = [99,100,98.5,100,97,98]
    list1[0] = 89

    访问列表中的值

    学习列表时,因为列表里的元素是自己放进去的。

    所以,总有一种错觉,自己知道列表里有什么。

    其实,你应该忘记列表里有什么,装作什么都不知道。

    f0a5312399c18bc11c94e075425a6a7c.png

    于是我们用 random模块的sample()函数构造了一个随机数列的列表。

    import random
    list1 = random.sample(range(70,100),10)

    random.sample(range(70,100),10)

    就是从[70,100)里面随机挑了10个数字。

    这下,你不知道列表里有什么了吧!

    那么,怎么才能知道列表里有什么呢?

    有如下的办法。

    • 通过下标索引
    list1[0]
    list1[1]
    • 通过下标索引切片
    list1[2:5]
    list1[:5]
    list1[3:]
    list1[2:5]
    list1[-5:-1]
    • 通过循环迭代
    for x in list1:
        print(x)

    不过通常我们更习惯采用循环下标索引的方式来遍历列表里每个元素

    Python提供了一个内置函数 len(),可以返回列表里元素的个数。

    n = len(list1)
    for i in range(n):
        print(list1[i])

    问题:列表的查找

    import random
    list1 = random.sample(range(1,100),80)

    如上列表实例 list1 包含 [1,100) 里随机的80个数。

    查找数字88是否包含在list1里。

    展开全文
  • 本文会在教你怎么用 300~400 行代码实现一个基本的 Virtual DOM 算法,并且尝试尽量把 Virtual DOM 的算法思路阐述清楚。希望在阅读本文后,能让你深入理解 Virtual DOM 算法,给你现有前端的编程...
  • 对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...
  • 对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...
  • 对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...
  • java新人,尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,调用 insert 指令没问题,而 select 指令出现如下报错: com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有语法错误。 at ...
  • 数字证书:文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • 数字证书:文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • 输入一个矩阵,按照外向以顺时针的顺序依次打印一个数字,例如,如果输入如下矩阵: 则依次打印数组:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。 思路:四个变量保存当前的边界,用两...

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:

    则依次打印出数组:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。

    思路:四个变量保存当前的边界,用两个变量遍历边界之内得元素。

    # -*- coding:utf-8 -*-
    class Solution:
        # matrix类型为二维列表,需要返回列表
        def printMatrix(self, matrix):
            # write code here
            rows = len(matrix)
            cols = len(matrix[0])
            result = []
            if rows == 0 and cols == 0:
                return result
            left, right, top, buttom = 0, cols - 1, 0, rows - 1
            while left <= right and top <= buttom:
                for i in range(left, right+1):
                    result.append(matrix[top][i])
                for i in range(top+1, buttom+1):
                    result.append(matrix[i][right])
                if top != buttom:
                    for i in range(left, right)[::-1]:
                        result.append(matrix[buttom][i])
                if left != right:
                    for i in range(top+1, buttom)[::-1]:
                        result.append(matrix[i][left])
                left += 1
                top += 1
                right -= 1
                buttom -= 1
            return result

     

    展开全文
  • 4].startswith(),如果bandEUTRA-r10的往上第四行是supportedMIMO-CapabilityDL-r10说明同组CA未结束,把筛选的有效信息强制类型转换后添加在上个元素末尾,反之则说明是个新的CA组合,往列表里添加一个新的元素。...
  • 实例075 用TreeView控件遍历磁盘目录 94 实例076 TreeView控件在数据库中的应用 96 实例077 带复选框的树状菜单 98 2.9 其他控件典型应用 100 实例078 TrackBar的简单应用 100 实例079 SplitContainer的...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象内存中清除出去之前做必要的...
  • C#.net_经典编程例子400

    热门讨论 2013-05-17 09:25:30
    89 2.8 TreeView控件应用 91 实例073 将数据库数据显示到树视图中 91 实例074 用TreeView控件制作导航界面 93 实例075 用TreeView控件遍历磁盘目录 94 实例076 TreeView控件在数据库中的...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,内存中清除…… Java Socket 聊天...
  • 然而可以创建一个变量,其类型一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...
  • 数字证书:文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,内存中清除…… Java Socket 聊天...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,内存中清除…… Java Socket 聊天...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,内存中清除…… Java Socket 聊天...
  • java源码包

    2015-12-01 16:29:37
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,内存中清除…… Java Socket 聊天...
  • php高级开发教程说明

    2008-11-27 11:39:22
    情况时,应该考虑到这一点,应从一个目录列举器中创建一个分离的模块,允许它列举不同的 目录,有选择性地递推子目录,甚至允许使用通配符,你可以创建一个“防弹”函数,它即能 处理大多数特例,又能完美地应付一个...
  • 然而可以创建一个变量,其类型一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...
  • javascript入门笔记

    2018-05-15 15:01:07
    条件是一个boolean类型的数据,如果条件结果为true,则执行表达式1的内容,并将表达式1的结果作为整体表达式的结果。如果条件为false,则执行表达式2的内容,并将表达式2的结果作为整体表达式的结果 ex: var age ...
  • java 面试题 总结

    2009-09-16 08:45:34
    然而可以创建一个变量,其类型一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...
  • 您使用一个SqlDataAdapter对象和一个SqlCommand对象通过调用一个存储过程数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为...
  • LINGO软件的学习

    2009-08-08 22:36:50
    一个派生集的成员列表有两种方式生成:①显式罗列;②设置成员资格过滤器。当采用方式①时,必须显式罗列所有要包含在派生集中的成员,并且罗列的每个成员必须属于稠密集。使用前面的例子,显式罗列派生集的成员:...
  • JavaScript笔记

    2018-09-28 11:21:56
    |--x.toString():用于把一个 Number 对象转换为一个字符串,并返回结果 19.正则表达式对象:(专门用于查找和验证) reg.test(‘要验证的完整字符串’)匹配返回true,否则返回false 强调:如果正则表达式使用了^和$...
  • for bullet in bullets.copy(): # 为了不从列表和编组中删除条目,我们遍历编组的副本 if bullet.rect.bottom 如果子弹飞屏幕 bullets.remove(bullet) # 将子弹bullets中删除 check_bullet_alien_...
  •  在Specify Table Copy or Query(指定表复制或查询)向导界面中,选择copy data from one or more tables or views(从一个或多个表或视图复制数据)选项,并继续这个向导到下一个界面。  在Select Source Table ...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

从一个列表里遍历出类型