zoukankan      html  css  js  c++  java
  • 【个人笔记】Python-列表与列表生成式

    在Python语言中,所谓的列表生成式,就是说可以生成list列表的表达式,是Python内置的一种强大的功能。

      1.1、Python 列表(List)

        python里面  [  ]  表示一个列表

        列表是最常用的Python数据类型

        创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

        

    list = [1,2,3,4,5,6,7]

        序列都可以进行的操作包括索引,切片,加,乘,检查成员。索引的值从0开始,也可以从最后一个开始数,那么最后一个就是倒数第一,也就是-1,以此类推

    list_num = [1, 2, 3, 4, 5, 6, 7]
    # 输出索引为0的值并打印
    print(list_num[0])
    # 输出索引为-1的值并打印
    print(list_num[-1])
    # 用索引值来修改列表
    list_num[3] = 10
    # 打印列表
    print(list_num)

        打印结果如下

        对列表进行切片操作

    list_num = [1, 2, 3, 4, 5, 6, 7]
    # 对列表进行切片操作 切片遵循左闭右开原则
    list_num1 = list_num[0:-1]
    # 打印列表list_num1
    print(list_num1)

        打印结果如下

     1.2、快速生成一个列表

        快速生成一个列表可以用range()函数来生成:

        注意:此时提到了rangge函数

        概念:range() 函数可创建一个整数列表,一般用在 for 循环中。

            range(起始值,终止值,步长)     遵循左闭右开

        

    # 使用range()函数快速生成列表
    # 首先定义一个空列表
    list_num = []
    # 使用for循环编列range函数,range函数同样遵循左闭右开原则
    for i in range(0, 10):
        # 使用append()函数向列表中追加元素
        list_num.append(i)
    # 打印列表
    print(list_num)

        输出结果:

    1.2使用列表生成式

      列表生成式简而言之:用一个表达式即可生成列表

      上面我们使用了for循环和range函数来快速生成了一个列表,那么怎么用一个表达式来生成一个列表呢?下面我们来看看答案:

    # 首先定义一个列表
    list_a = [1, 2, 3, 4, 5]
    # 使用列表生成式
    list_b =[x for x in list_a]
    # 打印列表list_b
    print(list_b)

      输出结果:

    2.案列

      1> 已知列表list = ["pYTHON","iS","eASY"]【使用列表生成式实现】,生成一个新的列表,并且结果大小写字母互换。

    # 已知列表list = ["pYTHON","iS","eASY"]【使用列表生成式实现】,生成一个新的列表,并且结果大小写字母互换
    
    # 首先了解大小写互换函数
    a = 'aBcD'
    print('大小写转换函数swapcase()')
    print(a.swapcase())
    
    list_one = ["pYTHON", "iS", "eASY"]
    print('源列表:' + str(list_one))
    
    
    # 定义普通转换方法的函数
    def String_td(a):
        list_two = []
        # 普通方法
        for i in a:
            list_two.append(i.swapcase())
        return list_two
    
    
    print('下面输出普通方法(for遍历)转换结果:')
    # 调用函数
    print(String_td(list_one))
    
    # 使用列表生成式
    print('下面使用列表生成式转换:')
    list_three = [x.swapcase() for x in list_one]
    print(list_three)

      输出结果:

    2>如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表

    # 如果想对一个列表里面的数据筛选,比如:[57, 3, -3, 4, 9, -8, 11, -66],找出大于0的数
    # 按正常思维可以for循环挨个判断,符合条件的放到新的列表
    # 定义一个列表
    list_a = [57, 3, -3, 4, 9, -8, 11, -66]
    # 定义一个空列表,存储需要的数据
    list_b = []
    # for循环遍历列表list_a
    for i in list_a:
        # 加入判断筛选数据
        if i > 0:
            # 大于0的数据追加到list_b
            list_b.append(i)
    # 打印list_b
    print(list_b)
    
    # 使用列表生成式
    list_c = [x for x in list_a if x > 0]
    print(list_c)

      输出结果:

    3>前面两个案列列表生成式都只传一个参数x,如果有两个列表如何去运算呢?

      举例:a = [1,2,3]      b = [ 'A' , 'B' , 'C' ]     生成 ls = [ 'A1' , 'B2' , 'C3 '

      先来看看普通for循环:

    # 举例:a = [1,2,3]      b = [ 'A' , 'B' , 'C' ]     生成 ls = [ 'A1' , 'B2' , 'C3 '
    a = [1, 2, 3]
    b = ['A', 'B', 'C']
    ls = []
    # 获取0,1,2,用作原始列表的下标,索引原始列表的元素,以便于操作
    for i in range(0, 3):
        # int和str不能直接拼接,先将int转为str
        x = b[i] + str(a[i])
        ls.append(x)
    print(ls)

      输出结果:

      使用列表生成式:

    # 举例:a = [1,2,3]      b = [ 'A' , 'B' , 'C' ]     生成 ls = [ 'A1' , 'B2' , 'C3 '
    a = [1, 2, 3]
    b = ['A', 'B', 'C']
    ls = []
    # # 获取0,1,2,用作原始列表的下标,索引原始列表的元素,以便于操作
    # for i in range(0, 3):
    #     # int和str不能直接拼接,先将int转为str
    #     x = b[i] + str(a[i])
    #     ls.append(x)
    # print(ls)
    # 使用列表生成式
    ls_1 = [x + str(i) for i, x in zip(a, b)]
    print(ls_1)

      输出结果:

    待续.....

    2019-11-30

    01:39:36

  • 相关阅读:
    linux下安装EJBCA 搭建私有CA服务器
    PHP 设计模式之观察者模式
    PHP 设计模式之三种工厂模式
    PHP 设计模式之单例模式
    解決 VMware Workstation 与 Device/Credential Guard 不相容,无法启动虚拟机的问题
    Mac 外接鼠标不好用?这个软件解决你的痛点
    PHP Trait 解决 PHP 单继承问题
    Wordpress 添加图片点击放大效果
    PHP 实现 WebSocket 协议
    Web 网页直接打开 Windows 软件
  • 原文地址:https://www.cnblogs.com/cxstudypython/p/11961170.html
Copyright © 2011-2022 走看看