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

    列表初识

    列表的作用和定义

    列表是python中使用最频繁的数据类型,在其他语言中一般称为数组;
    用一个变量存储多个数据;
    列表存储多个数据时,在中括号之间用逗号分隔多个数据;

    语法定义:

    变量名 = [数据1, 数据2, 数据3,...]
    eg:
    name_list = ["zhangsan", "lisi", "wangwu"]
    

    列表存储数据的方式和取数据

    • 列表按顺序存储数据,从0开始,逐渐递增的存,你可以理解为琅琊榜中琅琊阁的信息柜,一个一个存过去,并且给柜子从0开始编号,每次+1;
    • 取数据的时候只需要按照柜子编号取即可;
    • 列表的索引从0开始,索引就是数据在列表中的数据编号,索引又可以被称为下标。从列表中取值时,如果超出索引范围,就会报错。

    定义和取数据示例如下(在交互式下):

    name_list = ["zhangsan", "lisi", "wangwu"]
    name_list
    ['zhangsan', 'lisi', 'wangwu']
    name_list[0]
    'zhangsan'
    name_list[1]
    'lisi'
    

    列表方法

    列表方法查看

    在ipython3交互式下,先定义一个空列表;再 空列表. 后面敲一下tab键,即可显示列表常用方法;例如:

    In [1]: name_list = []
    
    In [2]: name_list.
    name_list.append   name_list.count    name_list.insert   name_list.reverse
    name_list.clear    name_list.extend   name_list.pop      name_list.sort
    name_list.copy     name_list.index    name_list.remove   
    
    In [2]: name_list.
    

    由此可见,列表方法有如下这些:

    name_list.append   name_list.count    name_list.insert   name_list.reverse
    name_list.clear    name_list.extend   name_list.pop      name_list.sort
    name_list.copy     name_list.index    name_list.remove 
    

    列表常用方法统计

    序号 分类 关键字/函数/方法 说明
    1 增加 list.insert(index, data) 在指定位置插入数据
    list.append(data) 在末尾追加数据
    list.extend(list2) 将列表2的数据追加到列表
    2 修改 list[index]=data 修改指定索引的数据
    3 删除 del list[index] 删除指定索引的数据
    list.remove(data) 删除第一个出现的指定数据
    list.pop() 删除末尾数据
    list.pop(index) 删除指定索引数据
    list.clear() 清空列表
    4 统计 len(list) 测量列表长度
    list.count(data) 检查数据在列表中出现的次数
    5 排序 list.sort() 升序排序
    list.sort(reverse=True) 降序排序
    list.reverse() 逆序,反转

    列表取值和取索引(index)

    name_list = ["zhangsan", "lisi", "wangwu"]
    
    # 列表取值,已知 内容在列表的位置(索引),根据索引来取值;注意,如果索引值超过范围的话,就会报错
    print(name_list[2])
    
    # 列表取索引,已知 内容,根据内容来确定内容在列表的位置;
    # 注意,如果查的内容不是列表中的内容的话,就会报错
    print(name_list.index("lisi"))
    

    列表 修改指定索引的数据

    name_list = ["zhangsan", "lisi", "wangwu"]
    # 修改指定索引的数据;注意,如果索引超过了范围,就会报错,而不是在末尾新建一个数据,那是append该做的事
    name_list[2] = "wangliu"
    print(name_list)
    

    列表增加(append,insert,extend)

    1.append

    name_list = ["zhangsan", "lisi", "wangwu"]
    # 3.1 append 在列表末尾追加
    name_list.append("liudi")
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu', 'liudi']
    

    2.insert

    name_list = ["zhangsan", "lisi", "wangwu"]
    #3.2 insert 向列表指定索引位置添加数据,注意,不是进行替换,只是挤进去而已
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.insert(1, "xiaoming")
    print(name_list)  # ['zhangsan', 'xiaoming', 'lisi', 'wangwu']
    

    3.extend

    # 3.3 extend 向列表末尾分散的追加另一个列表的所有内容,注意是分散的追加
    hero_list = ["hanxin", "zhangfei", "zhuge"]
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.extend(hero_list)
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu', 'hanxin', 'zhangfei', 'zhuge']
    

    列表删除数据(remove,pop,clear)

    1.remove

    name_list = ["zhangsan", "lisi", "wangwu"]
    # 4.1 remove 删除列表中指定的数据,注意,输入的要删除的数据必须在列表内,否则会报错
    # 如果列表中存在两个相同的元素时,remove方法会删除第一个出现的元素
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.remove("zhangsan")
    print(name_list)  # ['lisi', 'wangwu']
    

    2.pop

    name_list = ["zhangsan", "lisi", "wangwu"]
    # 4.2 pop 默认删除列表最后一个数据,也可以删除指定索引的数据,指定索引时,不能超过范围,否则报错
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.pop()
    print(name_list)  # ['zhangsan', 'lisi']
    
    name_list.pop(2)
    print(name_list)  # ['lisi']
    

    3.clear

    name_list = ["zhangsan", "lisi", "wangwu"]
    # 4.3 clear 清空列表
    print(name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.clear()
    print(name_list)  # []
    

    del关键字删除列表元素和del注意事项

    name_list = ["zhangsan", "lisi", "wangwu"]
    # 使用del关键字可以删除列表中的元素;但在日常开发中,如果要删除列表中的元素,建议使用列表提供方法。
    del name_list[1]
    print(name_list)  # ['zhangsan', 'wangwu']
    
    # del关键字的本质是将变量从内存中删除
    name = "xiaoming"
    print(name)
    del name
    # print(name)  # del将变量删除后,变量就无效了,不能再被调动,否则报错,所以本行必须被删除
    

    列表统计(len,count)

    1.len

    name_list = ["zhangsan", "lisi", "wangwu"]
    
    # len 统计列表中元素的个数
    list_num1 = len(name_list)
    print("列表中元素的个数为:", list_num1)
    name_list.append("zhangsan")
    list_num2 = len(name_list)
    print("列表中元素的个数为:", list_num2)
    

    2.count

    name_list = ["zhangsan", "lisi", "wangwu"]
    # count 统计列表中某一元素出现的个数
    times = name_list.count("zhangsan")
    print("列表中zhangsan出现的次数为:", times)
    

    列表的升降序和逆序(反转) (sort,reverse)

    升序sort

    name_list = ["zhangsan", "lisi", "wangwu"]
    num_list = [2, 4, 1, 3, 8]
    
    name_list.sort()
    print("升序后姓名列表:", name_list)  # ['lisi', 'wangwu', 'zhangsan']
    print("升序前数字列表:", num_list)  # [2, 4, 1, 3, 8]
    num_list.sort()
    print("升序后数字列表:", num_list)  # [1, 2, 3, 4, 8]
    

    降序sort

    name_list = ["zhangsan", "lisi", "wangwu"]
    num_list = [2, 4, 1, 3, 8]
    
    print("降序前姓名列表:", name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.sort(reverse=True)
    print("降序后姓名列表:", name_list)  # ['zhangsan', 'wangwu', 'lisi']
    print("降序前数字列表:", num_list)  # [2, 4, 1, 3, 8]
    num_list.sort(reverse=True)
    print("降序后数字列表:", num_list)  # [8, 4, 3, 2, 1]
    

    逆序reverse

    name_list = ["zhangsan", "lisi", "wangwu"]
    num_list = [2, 4, 1, 3, 8]
    
    print("逆序前姓名列表:", name_list)  # ['zhangsan', 'lisi', 'wangwu']
    name_list.reverse()
    print("逆序后姓名列表:", name_list)  # ['wangwu', 'lisi', 'zhangsan']
    print("逆序前数字列表:", num_list)  # [2, 4, 1, 3, 8]
    num_list.reverse()
    print("逆序后数字列表:", num_list)  # [8, 3, 1, 4, 2]
    

    应注意,无论是升降序还是逆序,都是直接对原列表做修改的,而不是临时修改

    列表其他扩展

    关键字,函数和方法的区别

    关键字

    关键字是Python内置的,具有特殊意义的标识符;
    关键字比如del,直接使用,后面无需括号。

    import keyword
    
    print(keyword.kwlist)
    
    """
    ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue','def', 'del',
     'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 
     'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
     """
    

    函数

    函数封装了独立功能,可以直接调用;
    函数的调用:

    # 函数名(参数)
    例如:print("hello world")
    

    方法

    方法和函数类似,封装了独立功能;
    与函数不同的是,方法需要通过对象调用,表示针对这个对象要做的操作。
    方法的使用:

    # 对象.方法名()
    例如:namelist.pop()
    

    循环遍历

    列表遍历就是 从头到尾 依次从列表中取数据;
    每次循环都将 从列表中顺序的读取出来的数据放在临时变量中,然后执行相同的操作。
    使用for进行迭代遍历。

    遍历语法格式:

    for 临时变量 in 列表:
    	针对临时变量进行的操作
    

    遍历示例:

    name_list = ["zhangsan", "lisi", "wangwu"]
    for i in name_list:
        print("本次读取的名字为:", i)
    

    列表的应用场景

    虽然python的列表可以存储不同的数据类型,比如同时存储字符串和数字;但在实际开发中,通常都是存储的同一类数据类型,然后通过迭代遍历列表中的数据,做相同的操作。

  • 相关阅读:
    优先队列
    Problem W UVA 662 二十三 Fast Food
    UVA 607 二十二 Scheduling Lectures
    UVA 590 二十一 Always on the run
    UVA 442 二十 Matrix Chain Multiplication
    UVA 437 十九 The Tower of Babylon
    UVA 10254 十八 The Priest Mathematician
    UVA 10453 十七 Make Palindrome
    UVA 10163 十六 Storage Keepers
    UVA 1252 十五 Twenty Questions
  • 原文地址:https://www.cnblogs.com/yifchan/p/python-1-5.html
Copyright © 2011-2022 走看看