美文网首页
Python 列表

Python 列表

作者: 以此怀念 | 来源:发表于2019-12-03 22:55 被阅读0次

    列表是Python中的可变序列.在形式上,列表的所有元素都放在一对中括号[]中,两个相邻的元素间使用逗号 , 分隔.
    在内容上,可以将整数 实数 字符串 列表 元组等任何类型的内容放入到列表中,并且同一个列表中,元素的类型可以不同.

    列表的创建和删除

    语法格式:
        listname = [element 1,element 2,element 3,...,element n] 
            其中: listname 表示列表的名称,element表示列表中的元素,个数没有限制,并且只要是Python支持的数据类型就可以
    

    创建数值列表

        语法:
            list_a(date)    
                其中data表示可以转换为列表的数据,其类型可以是range对象 字符串 元组 或者其他可以迭代类型的数据     
    
    # 创建空列表示例:
    # list_a = []
    # 创建数值列表示例:
    # a = list(range(10,20,2))
    # print (a)
    

    删除列表

    对于已经创建的列表,不再使用时,可以使用del语句将其删除.
        语法:
            del listname    #listname为要删除的列表名称
    
    # 删除列表示例:
    # a = ["春天","夏天","秋天","冬天","东","南","西","北"]
    

    访问列表元素

    想将列表的内容输出比较简单,直接使用print()函数即可.
    
    # 实例1,输出每日一贴
    # import datetime
    # # 定义一个列表
    # mot =  ["今天星期一:\n坚持下去不是因为我坚强,而是因为我别无选择.",
    #         "今天星期二:\n含泪播种的人一定能笑着收获.",
    #         "今天星期三:\n作对的事情比把事情作对更重要",
    #         "今天星期四:\n命运给予我们的不是失望之酒,而是机会之杯.",
    #         "今天星期五:\n不要等到明天,明天太遥远,今天就行动",
    #         "今天星期六:\n求知若饥,虚心若愚.",
    #         '今天星期日:\n成功将属于那些从不说"不可能"的人']
    # day = datetime.datetime.now().weekday()
    # print (mot[day])
    

    遍历列表

    遍历ilebiao是所有元素中常用的一种操作,在遍历的过程中可以完成查询 处理等功能.在Python中遍历列表的方法有多种,
    以下为常用 的两种
        for 循环遍历
            语法:
                for item in listname:
                    #输出item
                        其中,item用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可
                            listname为列表名称
                            
        使用for循环和enumerate()函数实现
            语法:
                for index,item in enumerate(listname):
                    #输出index和item
                        参数说明:
                            index   用于保存元素的索引
                            item    用于保存获取到的元素值,要实处元素内容时,直接输出该变量即可
                            listname为列表名称
    
    # 使用for循环遍历列表示例:
    # a = ["春天","夏天","秋天","冬天","东","南","西","北"]
    # for i in a:
    #     print (i,end="")
    
    # 使用for循环和enumerate()函数实现
    # a = ["春天","夏天","秋天","冬天","东","南","西","北"]
    # for index,i in enumerate(a):
    #     print (index +1,i)
    
    # 分两列显示列表示例:
    # a = ["春天","夏天","秋天","冬天","东","南","西","北"]
    # for index, i in enumerate(a):
    #     if index % 2 ==0:
    #         print (i + "\t\t",end='')       # \t 是制表符
    #     else:
    #         print (i + "\n")
    

    添加 修改和删除列表元素

    添加 修改和删除列表元素也陈伟更新列表.
        添加元素 append()   insert()    extend()
            之前有学到可以通过 + 号将两个序列连接,通过该方法也可以实现未列表添加元素.但是这个方法执行速度要比直接使用列表对象
            的append()方法慢,所以建议使用append()实现.
                insert()该方法用于向指定位置插入元素,但是执行效率没有append高.
                extend()用于将一个列表中的全部元素添加到另一个列表中.
                    append()格式:
                        listname.append(obj)
                            其中listname为要添加元素的列表名称,obj为要提阿尼啊到列表末尾的对象
                    
                    extend()格式:
                        listname.extend(seq)
                            其中listname为原列表,seq为要添加的列表.语句执行后seq的内容将追加到listname的后面.                 
    
    # append()添加元素示例
    # a = ["春天","夏天","秋天","冬天"]
    # len(a)
    # a.append("四季")
    # len(a)
    # print (a)
    
    # extend()添加元素示例
    # a = ["春天","夏天","秋天","冬天"]
    # b = ["东","南","西","北"]
    # a.extend(b)
    # print(a)
    

    修改元素

    修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可.
    
    # 修改元素示例:
    # a = ["春天","夏天","秋天","冬天"]
    # print(a)
    # a[3]= "你猜"
    # print(a)
    

    删除元素

    删除元素有两种情况,一种是根据索引删除,另一种是根据元素值进行删除
        根据索引删除
            使用del语句实现
                语法:
                    del 列表名[索引值]
        根据元素值删除
            使用列表对象的remove()方法实现
                语法:
                    列表名.remove("元素内容")
            使用remove删除元素时,如果指定元素不存在,将会出现异常信息,所以在使用remove方法删除元素前,最好判断该元素是否存在
    
    # 根据索引删除示例:
    # a = ["春天","夏天","秋天","冬天"]
    # del a[0]
    # print(a)
    
    # 根据元素值删除示例1:
    # a = ["春天","夏天","秋天","冬天"]
    # shanchu = "夏天"
    # if shanchu in a:
    #     a.remove(shanchu)
    # print(a)
    
    # 根据元素值删除示例2:
    # a = ["春天","夏天","秋天","冬天"]
    # shanchu = "冬天"
    # if a.count(shanchu) >0:
    #     a.remove(shanchu)
    # print(a)
    

    对列表进行统计和计算

    获取指定元素出现的次数
        count()
            语法:
                listname.count(obj)
                其中listname 表示列表的名称
                obj 表示要判断是否存在的对象,这里只能精确匹配,即不能是元素的一部分
                返回值 元素在列表中出现的次数
                
    获取指定元素首次出现的下标
        index()
            语法:
                listname.index(obj)
                其中listname 表示列表的名称
                obj 表示要查找的对象,这里只能精确匹配,即不能是元素的一部分,如果对象不存在,则会抛出异常
                返回值 首次出现的索引值
                
    统计数值列表的元素和
        Python中,提供了sum()函数用于统计数值列表中各元素的和.
            语法:
                sum(iterable[,start])
                    iterable 表示要统计的列表
                    start   表示统计结果是从哪个数开始,如果不指定,默认值为0
    
    # 获取指定元素出现的次数示例:
    # a = ["春天","夏天","秋天","冬天","秋天","冬天","春天","夏天","秋天"]
    # tongji = a.count('冬天')
    # print(tongji)
    
    # 获取指定元素首次出现的下标示例:
    # a = ["春天","夏天","秋天","冬天","秋天","冬天","春天","夏天","秋天"]
    # suoyin = a.index("冬天")
    # print(suoyin)
    
    # 统计数值列表的元素和示例:
    # fenshu = [90,80,99,85,94,65]
    # tongji =sum(fenshu)
    # print(tongji)
    

    对列表进行排序

    PYthon中提供了两种常用的对列表进行排序的方法,使用列表对象的sort()方法,使用内置的sortd(函数)
        sort()  原列表中的元素顺序发生改变         (sort对中文的支持不太好)
            语法:
                列表名.sort(key=None,reverse=False)
                    key 表示指定从每个元素中提取一个用于比较的键(例如,设置"key=str.lower"表示在排序是不区分字母大小写)
                    reverse 可选参数,True表示降序排列,False表示升序排列,默认为升序排列
                    
        sorted()  原列表中的元素顺序不变
            语法:
                sorted(列表名,key=None,reverse=False)
                    key 表示指定从每个元素中提取一个用于比较的键(例如,设置"key=str.lower"表示在排序是不区分字母大小写)
                    reverse 可选参数,True表示降序排列,False表示升序排列,默认为升序排列
        
        以上2个方法的作用基本相同,但是sort()方法会改变原列表的元素排列顺序,而stored()会建立一个原列表的副本,该副本为排序
        后的列表    
    
    # sort()示例  原列表中的元素顺序发生改变
    # fenshu = [90,80,99,85,94,65]
    # fenshu.sort(key=None)
    # print(fenshu)
    
    # sorted()示例  原列表中的元素顺序不变
    # fenshu = [90,80,99,85,94,65]
    # fenshu_fb = sorted(fenshu,key=None)
    # print("原列表",fenshu)
    # print("新列表",fenshu_fb)
    

    列表推导式

    使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表.列表推导式通常有以下几种常用的语法格式
        1.生成指定范围的数值列表
            语法:
                list = [Expression for var in range]
                    list 表示生成的列表名称
                    Expression  表达式,用于计算新列表的元素
                    var 循环变量
                    range 采用range()函数生成的range对象
                    
        2.根据列表生成指定需求的列表
            语法:
                newlist = [Expression for var in list]
                    newlist 表示新生成的列表名称
                    Expression  表达式,用于计算新列表的元素
                    var 循环变量
                    list 用于生成新列表的原列表
                    
        3.从列表中选择符合条件的元组组成新的列表
            语法:
                newlist = [Expression for var in list if condition]
                    newlist 表示新生成的列表名称
                    Expression  表达式,用于计算新列表的元素
                    var 循环变量
                    list 用于生成新列表的原列表
                    condition 条件表达式,用于指定筛选条件
    
    # 1.生成指定范围的数值列表示例
    # import random
    # # a = [random.randint(10,100) for i in range(10)]
    # # print(a)
    
    # 2.根据列表生成指定需求的列表:定义一个列表,然后用列表推导式生成一个将全部元素减半的列表
    # import random
    # a = [random.randint(100,1000) for i in range(10)]
    # print('原列表',a)
    # b = [x*0.5 for x in a]
    # print('新列表',b)
    
    # 3.从列表中选择符合条件的元组组成新的列表
    # a = [142, 322, 204, 617, 304, 353, 264, 786, 582, 799]
    # b = [i for i in a if i >= 500]
    # print(b)
    

    二维列表的使用

    在Python中,由于列表元素还可以是列表,所以它也支持二维列表的概念.
    二维列表中的信息以行和列的形式表示,第一个下标表示元素所在的行,第二个下标表示元素所在的列.
    在Python中,创建二维列表有以下三种常用的方法.
        1.直接定义二维列表
            语法:
                listname = [[元素11,元素12,元素13,...,元素1n],
                            [元素21,元素22,元素23,...,元素2n],
                            ...
                            [元素n1,元素n2,元素n3,...,元素nn]]
                            
        2.使用嵌套的for循环创建
            arr = []    #创建一个空列表
            for i in range(4):
                arr.append([])  #在空列表中再添加一个空列表
                for j in range(5):
                    arr[i].append(j)    #为内层列表添加元素
            print(arr)
            
        3.使用列表推导式创建
            erwei = [[i for i in range(5)] for j in range(4)]
            print(erwei)
    
    # 使用二维列表输出不同版式的古诗
    # zfc1 = "千山鸟飞绝"
    # zfc2 = "万径人踪灭"
    # zfc3 = "孤舟蓑笠翁"
    # zfc4 = "独钓寒江雪"
    # test = [list(zfc1),list(zfc2),list(zfc3),list(zfc4) ]
    # for i in range(4):
    #     for j in range(5):
    #         if j == 4:
    #             print(test[i][j])
    #         else:
    #             print(test[i][j],end='')
    # test.reverse()
    # print('---'* 30)
    # for i in range(5):
    #     for j in range(4):
    #         if j == 3:
    #             print(test[j][i])
    #         else:
    #             print(test[j][i],end='')
    

    相关文章

      网友评论

          本文标题:Python 列表

          本文链接:https://www.haomeiwen.com/subject/kwohgctx.html