• 《Python编程从入门到实践》学习笔记<4>:操作列表


    <四>操作列表
    1、遍历列表
     对列表中的每个元素执行相同的操作,往往需要遍历列表中的每个元素,实现重复操作的情况,常用FOR循环来实现,如下所示:
    heros = ['关羽','张飞','赵云']
    for hero in heros:
        print(hero.title() + '是个大英雄!')
    print(heros)
    print(hero)

    在for循环的作用下,代码每次执行,都会在'heros'读取一个元素复制到临时列表'hero'中,同时输出'print()'中的语句,直到列表heros中的元素被完全读取完为止,输出结果如下:

    关羽是个大英雄!
    张飞是个大英雄!
    赵云是个大英雄!
    ['关羽', '张飞', '赵云']
    赵云
     由上例可以看出,for循环执行的时候,并未对源列表造成影响,而临时列表中也只存储每次读取的结果,之行结束后结果删除,继续下次执行的结果。
     若让程序更加丰富,可靠考虑率缩进问题,如下所示:
    heros = ['关羽','张飞','赵云']
    for hero in heros:
        print(hero.title() + '是个大英雄!')
        print(hero.title() + "的主公是刘备.
    ")
    print('他们都是三国时期的人!')

    上例中有三个打印输出,其中前两个有缩进,最后一个没有。在Python中,缩进用来表示需要在方法内执行的操作,比如在for循环中,for语句下面的代码就是通过缩进来表示需要执行的重复操作。而没有缩进的语句只执行一次,如下所示:

    关羽是个大英雄!
    关羽的主公是刘备.
    
    张飞是个大英雄!
    张飞的主公是刘备.
    
    赵云是个大英雄!
    赵云的主公是刘备.
    
    他们都是三国时期的人! 

     由上例可看出在for循环中额,没有缩进的代码只会执行一次,只有缩进的代码才会反复执行
    2、创建数值表
     range()函数的作用是生成一系列数字,用于基本的数字处理工作,如下所示:

    for value in range(1,5):
        print(value)

    此处生成的数据并不包含5,原因在于range()函数在生成数据的时候,会从规定的第一个数据开始生成,当读取到第二个数据时结束,因此range()函数生成的数据是个半开半闭区间,生成结果如下:

    1
    2
    3
    4

    使用range()函数生成数字的时候,可以连用list()函数,使生成的数字转换成列表,如下所示:

    numbers = list(range(1, 20,3))
    print(numbers)

    如上例所示,当list()函数和range()函数合用的时候,range()函数的结果作为list()函数的元素来使用0,此外补偿的运用,让从1到20的半开半闭区间中,每一个增量值都间隔三位,直到读取到20跳出,输出结果如下:

    [1, 4, 7, 10, 13, 16, 19]

    range()函数几乎可以创建任何需要的数据集合,如下所示:

    squares = []                      #定义一个空列表,用于数据存放
    for values in list(range(1,11)):  #定义for循环函数,规定字段values的值在集合范围中
        square = values**2            #定义变量square存储values**2的值(**为乘方运算)
        squares.append(square)        #向空列表squares添加每次循环后square的值,存储起来
    print(squares)                    #打印循环结束后squares的值
    print(max(squares))               #打印循环结束后squares的最大值
    print(min(squares))               #打印循环结束后squares的最小值
    print(sum(squares))               #打印循环结束后squares的所有元素之和

    由上例中可发现,输出时引用了max(),min()和sum()三个函数,作用和其他函数一样,输出结果如下所示:

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    100
    1
    385

    上例也可写成解析列表形式,如下所示:

    squares = [value**2 for value in range(1,11)]
    print(squares)

    解析列表是一种独特的写法,首先要制定一个描述性的列表名,然以后指定方括号,按照从左到右的顺序,先从左方括号开始,写下定义的表达式,接着写下for循环用于为表达式提供值,然后用右括号封口,这就是一个完整的解析列表,上例改写后,输出结果未变,如下所示:

    3、切片
     在Python中,实现对列表中部分元素的处理,称之为切片,如下所示:
    players = ['charles','martina','michael','florence','eli']
    print(players[1:4])
    print(players[:4])
    print(players[1:])
    print(players[:])

    在上例中,代码访问了列表players位于1到4的元素,输出结果如下所示:

    ['martina', 'michael', 'florence']
    ['charles', 'martina', 'michael', 'florence']
    ['martina', 'michael', 'florence', 'eli']
    ['charles', 'martina', 'michael', 'florence', 'eli']

    由上例可看出,设定切片的范围,使用[x:y]格式的代码来表示的,当只设定截止,不设定开始时,数据从头开始截取;当只设定开始,不设定截止时,数据从开始截取到结束;如果都不设定,数据会截取全部。

     切片的用途十分广泛,最基本的用法例如列表的复制,如下所示:
    players = ['charles','martina','michael','florence','eli']
    new_players = players[:]
    print(players)
    print(new_players)

    将列表players设置不限定开始结束的切片,这样就能够取到列表players中的所有值,然后将其赋值给new_players,这样new_players就获取了列表layers中的所有值,输出结果如下所

    ['charles', 'martina', 'michael', 'florence', 'eli']
    ['charles', 'martina', 'michael', 'florence', 'eli']
    4、元组
     对于不能修改的值,Python称之为元组。元组使用圆括号标识,类似于列表,也可以用索引来访问,但是不能修改,如下所示:
    dimensionas= (200,50)
    print(dimensionas[0])
    print(dimensionas[1])

    上例输出结果如下所示:

    200
    50

    元组中值的遍历也如同列表一样,如下所示:

    dimensionas= (200,50)
    for value in dimensionas:
        print(value)

    输出结果如下所示:

    200
    50

     元组中的元素不能修改,如果一定要修改元组中的数据,只能通过重新赋值的方式修改。 
     
  • 相关阅读:
    C语言写数据库(三)
    C语言写数据库(一)
    KMP 串的模式匹配 (25 分)
    11-散列4 Hashing
    11-散列3 QQ帐户的申请与登陆 (25 分)
    11-散列1 电话聊天狂人 (25 分)
    11-散列2 Hashing (25 分)
    am335x system upgrade uboot nand boot(三)
    am335x system upgrade uboot ethernet(二)
    am335x system upgrade uboot sd boot(一)
  • 原文地址:https://www.cnblogs.com/a404790696/p/10876308.html
Copyright © 2020-2023  润新知