zoukankan      html  css  js  c++  java
  • 第16讲:序列!序列!

    一 列表、元组、字符串的共同点

    • 1 都可以通过索引得到每一个元素
    • 2 默认的索引值总是从0开始的
    • 3 可以通过分片的方式来得到一个范围内元素的集合
    • 4 有很多的共同操作符(重复操作符、拼接操作符、成员关系操作符)

    因此,我们把列表、元组、字符串统称为序列

    二 序列的内置函数BIF

    1 list()函数

    • 功能:把一个可迭代对象转化为列表
    • 语法:list()  产生一个空列表
    •           list(iterable)  把可迭代项目的内容通过索引值迭代,将其变成一个列表
      • 迭代:重复反馈过程的活动,其目的通常是为了达到或接近所需的目标或结果;每次对过程的重复称之为一次迭代;每一次迭代得到的结果都会被用作下一次迭代的初始值,可将迭代近似看成一个for循环

    2 tuple()函数

    • 功能:把一个可迭代对象转化成元组
    • 语法:tuple([iterable])

    3 str()函数

    • 功能:把obj对象转化成字符串
    • 语法:str(obj)

    4 len()函数

    • 功能:计算序列的长度并返回
    • 语法:len(sub)

    5 max()函数:返回序列或者参数集合中的最大值,要保证序列的全部参数类型是统一的

    6 min()函数:返回序列或者参数集合中的最小值,要保证序列的全部参数类型是统一的

    7 sum(interable[,start=0]):返回序列interable和start的总和

    • 不是数字类型的数据不能使用sum函数

    8 sorted()函数,功能类似于序列的内置方法.sort(),对序列进行排序

    • 注意sort()函数是没有返回值的,不能把它赋给一个变量,如果写成 b=a.sort() ,得到的b可能是一个空指针?

    9 reversed()函数,功能与list.reverse()类似,直接使用reversed(interable)它会返回一个迭代器对象,我们可以用list函数将它转换成列表

    • >>> b
      [434, 65, 64, 43, 22, 9, 7]
      >>> reversed(b)
      <list_reverseiterator object at 0x00000059AEC1BFD0>
      >>> b
      [434, 65, 64, 43, 22, 9, 7]
      >>> c = list(reversed(b))
      >>> c
      [7, 9, 22, 43, 64, 65, 434]

    10 enumerate() 枚举,生成由每个元素的index值和item值组合成的元组

    • >>> c
      [7, 9, 22, 43, 64, 65, 434]
      >>> enumerate(c)
      <enumerate object at 0x00000059AEC42380>
      >>> d = list(enumerate(c))
      >>> d
      [(0, 7), (1, 9), (2, 22), (3, 43), (4, 64), (5, 65), (6, 434)]
      >>>

    11 zip 返回由不同序列同一索引下的元素组成的元组

    • >>> a = [1,2,3,46,8]
      >>> b = [32,332,345,78]
      >>> zip(a,b)
      <zip object at 0x00000059AEC423C0>
      >>> c = list(zip(a,b))
      >>> c
      [(1, 32), (2, 332), (3, 345), (46, 78)]
      >>>

    三  课后作业

    1 你还能复述出“迭代”的概念吗?
    所谓迭代,是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。

    2  现在的小屁孩太调皮了,邻居家的孩子淘气,把小甲鱼刚写好的代码画了个图案,麻烦各位鱼油恢复下啊

    name = input('请输入待查找的用户名:')
    score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
    IsFind = False
    
    for each in score:
        if name in each:
            print(name + '的得分是:', each[1])
            IsFind = True
            break
        
    if IsFind == False:
        print('查找的数据不存在!')

    3 猜想一下 min() 这个BIF的实现过程

    def min(x):
        least = x[0]
    
        for each in x:
            if each < least:
                least = each
    
        return least
    
    print(min('123456789'))

    4 视频中我们说 sum() 这个BIF有个缺陷,就是如果参数里有字符串类型的话就会报错,请写出一个新的实现过程,自动“无视”参数里的字符串并返回正确的计算结果

    def sum(x):
        result = 0
        
        for each in x:
            if (type(each) == int) or (type(each) == float):
                result += each
            else:
                continue
    
        return result
    
    print(sum([1, 2.1, 2.3, 'a', '1', True]))
  • 相关阅读:
    发布spring cloud + vue项目
    以太坊上发行ERC20代币
    [转]大白话讲解Promise(一)
    比特币测试网络搭建
    非对称加密, 助记词, PIN, WIF
    搭建EOS未完
    [转]EOS智能合约 & 私链激活 & 基本操作
    [转]https://www.jianshu.com/p/06443248f4d8
    web3js 进行转账
    [转]How to Send Ethereum with Web3.js and Node
  • 原文地址:https://www.cnblogs.com/luoxun/p/13262669.html
Copyright © 2011-2022 走看看