• 列表简介(3)


    操作列表

    经常会有遍历列表的所有元素,对每个元素执行相同的操作

    eg: 在游戏中可能需要将每个界面元素平移相同的距离;

    对于包含数字的列表,可能需要对每个元素执行相同的统计运算

    在网站中,可能需要显示文章列表中的每个标题等等

    使用for循环

    eg:

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

    alice
    david
    carolina

    ========================================

    定义一个for循环,让列表magicians中取出一个名字,

    并将其存储在变量magician中,最后,让python打印前面存储

    到变量magician中的名字

    对列表中的每个元素,都将执行循环指定的步骤,而不管列表包含多少个元素

    如果列表包含一百万个元素,Python就重复执行指定的步骤一百万次,且通常

    速度非常快。

    编写for循环时,对于用于存储列表中每个值得临时变量,可指定任何名称。

    but 选择描述单个列表元素的有意义的名称大有帮助。

    eg:对于小猫列表、小狗列表和一般性列表,像下列编写for循环是一个不错的选择

    for cat in cats:

    for dog in dogs:

    for item in list_of_items:

    4.1 创建数值列表:

    列表非常适用存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表

    4.1.1 使用函数range()

    Python函数range()让你轻松地生成一系列的数字,

    eg:

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

    1
    2
    3
    4

    =====================

    python的特性是左闭右开

    4.1.2 使用range()创建数字列表

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

    如果将range()作为list()的参数,输出将为一个数字列表。

    将数字转换为一个列表,可使用list():

    numbers = list(range(1, 6))
    print(numbers)
    ===========================
    output:
    [1, 2, 3, 4, 5]
    ===========================
    使用函数range() 可指定步长
    eg:
    打印1~10内的偶数:
    even_numbers = list(range(2, 11, 2))
    print(even_numbers)
    ======
    output:
    [2, 4, 6, 8, 10]
    使用函数range()几乎能创建任何需要的数字集:
    eg:
    如何创建前10个整数的平方呢?
    两个星号(**)表示乘方运算
    eg:
    squares = []
    for value in range(1, 11):
    squares.append(value**2)
    print(squares)
    ==========
    output:
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    =====================================
    4.1.3 对数字列表执行简单的统计计算
    有专门用于处理数字列表的Python函数
    digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    print(min(digits))
    print(max(digits))
    print(sum(digits))
    ===================
    output:
    1
    10
    55

    =====================
    4.1.4 列表解析
    前面介绍的生成列表squares的方式包含三四行代码,
    列表解析让你只需编写一行代码就能生成相同的列表

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

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

    ============================
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    =================
    使用这种语法,首先指定一个描述性地列表名,如squares;
    然后,指定一个左方括号,并定义一个表达式,用于生成要存储
    到列表中的值,在这个示例中,表达式为value**2, 接下来
    编写一个for循环,用于给表达式提供值,再加上右方括号,
    在这个示例中,for循环为for value in range(1,11)
    它将值1~10提供给表达式value**2, 请注意,for语句末尾没有冒号

    当觉得编写三四行代码来生成列表有点繁复时,就应考虑创建列表解析

    4.2 使用列表的一部分
    4.2.1 切片
    要创建切片, 可指定要使用的第一元素的索引和最后一个元素的索引加1,
    与函数range()一样,
    eg:
    输出列表中的前三个元素,需要指定索引0~3, 这将输出分别为0、1、2的元素
    eg:
    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    print(players[0:3])
    print(players[:4])
    print(players[2:])
    print(players[-3:])
    print(players[:])

    =======================
    output:

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

    ======================
    players[:4]没有指定第一个索引,python将自动从列表开头开始
    要让切片终止于列表末尾,也可使用类似的语法,
    players[2:]从第三个元素到列表末尾的所有元素
    负数索引返回离列表末尾相应距离的元素,因此可以输出列表末尾的任何切片
    输出最后三个元素,使用切片players[-3:]
    players[:]输出从开头到结尾
    4.2.2 遍历切片
    如遍历列表的部分元素,可在for循环中使用切片。
    eg:
    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    for player in players[:3]:
    print(player.title())
    =======
    output:

    Charles
    Martina
    Michael

    =========

    这里只遍历前三个元素:

    在很多情况下,切片都很有用,

    eg:编写游戏时,可以在玩家退出游戏时将其最终得分加入到一个列表中

    为获得三个最高得分,可将列表按降序排列,再创建一个只包含前三个得分

    的切片,处理数据时,可使用切片进行批量处理,编写Web应用程序时,

    可使用切片来分页显示信息,并将每页显示数量合适的信息

    4.2.2 复制列表

    要复制列表,可创建一个包含整个列表的切片,

    eg:

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

    print(my_foods)
    print(friend_foods)
    my_foods.append('cannoli')
    friend_foods.append('ice cream')
    print(my_foods)
    print(friend_foods)
    =====
    output:

    ['pizza', 'falafel', 'carrot cake']
    ['pizza', 'falafel', 'carrot cake']
    ['pizza', 'falafel', 'carrot cake', 'cannoli']
    ['pizza', 'falafel', 'carrot cake', 'ice cream']

    =======================

    在不指定任何索引的情况下从列表my_foods中提取一个切片,从而创建这个列表的副本

    再将副本存储到变量friend_foods中,打印每个列表后,发现包含元素相同

    添加元素发现都包含在正确的列表中

    如果只是简单地将列表赋值给另一个列表将不能得到两个列表

    eg:

    不适用切片的情况下复制列表

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

    print(my_foods)
    print(friend_foods)
    my_foods.append('cannoli')
    friend_foods.append('ice cream')
    print(my_foods)
    print(friend_foods)
    =====================
    output:

    ['pizza', 'falafel', 'carrot cake']
    ['pizza', 'falafel', 'carrot cake']
    ['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
    ['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

    =======================

    这种语法实际上是让python将新变量friend_foods关联到包含在my_friends中的列表

    因此这两个变量都指向同一个列表

    输出表明,这两个列表是相同的

  • 相关阅读:
    SharePoint 2013 配置启用搜索服务
    SharePoint 2013 安装图解
    SharePoint 2013 添加Ribbon菜单
    SharePoint 入门介绍
    SharePoint 2007 管理中心TimerJob”计时器作业定义”页面报错
    SharePoint 2007 单列表模糊查询SPD定制
    SharePoint 开发TimerJob 介绍
    SharePoint 搜索爬网第三方网站配置
    SharePoint 2013 配置开发环境,需安装VS2012插件
    SharePoint 2013 中将 HTML文件转换为母版页
  • 原文地址:https://www.cnblogs.com/xzpin/p/10747417.html
Copyright © 2020-2023  润新知