zoukankan      html  css  js  c++  java
  • 【Python笔记】第4章 操作列表

    列表

    for语句遍历列表:

    magicians = ['alice', 'david', 'carolina']
    for magician in magicians:
        print(magician)

    注意冒号和缩进。for循环语句块中还可以写很多语句。


    range()函数:生成一系列数字。如 range(1, 6)生成1, 2, 3, 4, 5。

    range函数还可以指定步长,如 range(2,11,2)生成2, 4, 6, 8, 10。

    要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如 numbers = list(range(1,6))

    最大值函数max(),最小值函数min(),求和函数sum()

    >>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    >>> min(digits)
    0
    >>> max(digits)
    9
    >>> sum(digits)
    45 

    列表解析:

    列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

    squares = [value**2 for value in range(1,11)]
    print(squares) 
    
    输出:
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    列表切片

    要创建切片,可指定要使用的第一个元素和最后一个元素的索引,与range()函数一样

    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    print(players[0:3])   # 输出列表前三个元素
    print(players[1:4])   # 输出列表第2~4个元素
    print(players[:4])    # 没有指定第一个索引,从列表开头开始
    print(players[2:])    # 没有指定第二个索引,到列表结尾结束
    print(players[-3:])   # 输出列表最后三个元素
    

    遍历切片

     for player in players[:3]:
         print(player.title()) 

    复制列表

    要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。

    my_foods = ['pizza', 'falafel', 'carrot cake']
    friend_foods = my_foods[:] 

    这样得到的两个列表是没什么关系的列表,修改其中一个不会影响另一个。

    但是如果直接像下面这样赋值

    friend_foods = my_foods    # friend_foods和my_foods指向的是同一个列表

    这里将my_foods赋给friend_foods,而不是将my_foods的副本存储到friend_foods。这种语法实际上是让Python将新变量friend_foods关联到包含在my_foods中的列表,因此这两个 变量都指向同一个列表。修改其中一个也会修改另一个。

    基本上,当你试图使用列表的副本时,如果结果出乎意料,请确认你像第一个示例那样使用切片复制了列表。


    元组

    Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
    定义元组用圆括号,访问元组元素的语法与访问列表元素相同

    dimensions = (200, 50)
    print(dimensions[0])
    print(dimensions[1])
    dimensions[0] = 250    # 非法语句,会报错,不能给元组的元素赋值

    像列表一样,也可以使用for循环来遍历元组中的所有值

    修改元组变量
    虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组

    dimensions = (200, 50)
    dimensions = (400, 100)    # OK

    Python编程:从入门到实践. Eric Matthes (作者) 袁国忠(译者)

  • 相关阅读:
    【转】fastjson-1.2.47-RCE
    某安全设备未授权访问+任意文件下载0day
    关于伴侣
    【转】Why BIOS loads MBR into 0x7C00 in x86 ?
    【生活】北京旅游攻略
    利用Python读取图片exif敏感信息
    A MacFUSE-Based Process File System for Mac OS X
    linux-强制断开远程tcp连接
    Navicat use HTTP Tunnel
    python mac下使用多进程报错解决办法
  • 原文地址:https://www.cnblogs.com/ME-WE/p/12433587.html
Copyright © 2011-2022 走看看