zoukankan      html  css  js  c++  java
  • Python之列表

    1.1列表概述

    • 列表中的数据按顺序排列。
    • 列表有正序和倒叙两种索引。
    • 列表可存储任意类型数据,且允许重复。

    1.2初始列表

    #变量名=[元素1,元素2,....]
    list = ['a' , 'b' , 'c' , 'd' , 1 , 2 , 3 , 4]
    print(list)
    list1 = []
    print(list1)

    1.3列表的取值

    list = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
    print(list)
    # 取值的语法: 变量 = 列表变量[索引值]
    zhaoliu = list[3]
    print(zhaoliu)
    zhaoliu = list[-3]
    print(zhaoliu)
    
    # 范围取值: 列表变量 = 原列表变量[起始索引:结束索引]
    # 在Python中列表范围取值是"左闭右开"
    list1 = list[1: 4]
    print(list1)
    print(list1[-1])
    
    # 列表的index函数用于获取指定元素的索引值
    zhaoliu_index = list.index('赵六')
    print(zhaoliu_index)

    1.4列表的遍历

    1.4.1使用for循环

    name_list = ["zhangsan", "lisi", "wangwu"]
    for name in name_list:
        print(name)

    1.4.2使用while循环

    name_list = ["zhangsan", "lisi", "wangwu"]
    i = 0
    name_len = len(name_list)
    while i < name_len:
        print(name_list[i])
        i += 1

    1.5列表的排序与排序

    #列表的反转与排序
    persons = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
    persons.reverse() #reverse方法用于反转列表
    print(persons)
    
    numbers = [28,32,14,12,53,42]
    numbers.sort(reverse=True) #sort()用于排序,reverse=True代表降序排列
    print(numbers)

      内置函数sorted,不会改变原有的列表数据,会生成一个新的有序数据

    num = [6, 5, 3, 1, 2]
    x = sorted(num)
    print(x)  # [1, 2, 3, 5, 6]

    1.6列表的新增

    persons = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
    # 列表的追加
    persons.append("杨九")
    print(persons)
    # 列表的插入
    persons.insert(2 , '刘二')
    print(persons)
    persons.insert(len(persons) , '候大')
    print(persons)

    1.7列表的修改

    # 列表的更新
    persons[2] = '宋二'
    print(persons)
    # 列表范围取值是"左闭右开"
    persons[3:5] = ['王五','李四']
    print(persons)

    1.8列表的删除

    # 列表的删除操作
    # 按元素内容删除,如果数据不在列表中,会报错
    persons.remove('宋二')
    print(persons)
    # 按索引值删除元素,并且返回这个数据
    persons.pop(4)
    print(persons)
    # 范围删除
    persons[4:7] = []
    print(persons)

    1.9列表的查询

    tanks = ['程咬金', '盾山', '程咬金']
    print(tanks.index('盾山'))  # 1,如果元素不存在,会报错
    print(tanks.count('程咬金'))  # 2

    1.10列表的其他常用方法

    1.10.1统计出现次数

    # 其他常用方法
    persons = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
    
    #统计出现次数
    cnt = persons.count('赵六')
    print(cnt)

    1.10.2追加操作

    # 追加操作
    # append将整个列表追加到末尾,extend则是将列表中的元素追加到原始列表末尾
    persons = ['张三', '赵六']
    persons.append(['杨九', '吴十'])  # ['张三', '赵六', ['杨九', '吴十']]
    print(persons)
    persons.extend(['杨九', '吴十'])  # ['张三', '赵六', ['杨九', '吴十'], '杨九', '吴十']
    print(persons)

    1.10.3in操作符

    in(成员运算符) 运算符用于判断数据是否在列表中存在,存在返回True,不存在返回False。

    persons.remove('张三')
    b = '张三' in persons
    print(b)

    1.10.4复制列表

    #copy 函数用于复制列表,这个新列表和原有的里列表内容一样,但是指向不同的内存空间
    persons1 = persons.copy()
    persons2 = persons
    print(persons1)
    #is 身份运算符用于判断两个变量是否指向同一块内存
    print(persons1 is persons)
    print(persons2 is persons)

    1.10.5清空列表

    #clear 用于清空列表
    persons.clear()
    print(persons)

    1.11列表推导式

    multiples = [i for i in range(30) if i % 3 is 0]
    print(multiples)  # [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

      列表推导式在有些情况下超赞,特别是当你需要使用for循环来生成一个新列表。举个例子,你通常会这样做:

    squared = []
    for x in range(10):
        squared.append(x**2)

      你可以使用列表推导式来简化它,就像这样:

    squared = [x**2 for x in range(10)]

    1.12补充:交换两个变量的值

    a = 12
    b = 15
    a, b = b, a
    print(a, b)  # 15 12

    1.13项目中列表的使用场景

    # 多维列表(嵌套列表)
    # [[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资]]
    # 字符串:"姓名,年龄,工资"例如: "张三,30,2000"
    # str = "张三,30,2000"
    # l = str.split(",")
    # print(l)
    emp_list = []
    while True:
        info = input("请输入员工信息:")
        if info == "":
            print("程序结束")
            break
        info_list = info.split(",")
        if len(info_list) != 3:
            print("输入格式不正确,请重新输入")
            continue
        emp_list.append(info_list)
        # print(emp_list)
    
        for emp in emp_list:
            print("{n},年龄:{a},工资:{s}".format(n=emp[0],a=emp[1],s=emp[2]))

    列表的应用场景:在实际开发中,列表存储相同类型的数据,通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作。

  • 相关阅读:
    Verilog HDL设计进阶:有限状态机的设计原理及其代码风格_zt
    敏感信号与判断条件冲突引起的错误
    在Quartus II里查看综合器生成的原理图
    RGB与YCbCr颜色空间的互相转换公式
    YCbCr2转换成RGB的verilog解析_zt
    Verilog中函数与任务比较
    Verilog奇偶校验_zt
    8位数据的奇偶校验verilog程序_zt
    4个32位数的比较
    Latex排版工具的使用(一) 分类: Latex 2014-06-14 22:52 448人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/zhuzhaoli/p/10851191.html
Copyright © 2011-2022 走看看