zoukankan      html  css  js  c++  java
  • 列表和元组

    1.列表的定义

    定义: 能装对象的对象

    在python中使用 []来描述列表, 内部元素用逗号隔开. 对数据类型没有要求

    lst = ["光头强", 1, True, {}, (1, ), {123}, ["周杰伦",[], "周杰", "结论"]]
    print(lst)

    列表存在索引和切片. 和字符串是一样的.

    lst = ["天龙八部", "西游记", "红楼梦", "银平煤", "绿平煤"]
    print(lst[3])
    print(lst[-3])
    print(lst)
    print(lst[1:4]) # 切片,原来是什么类型. 得到的就是什么类型
    print(lst[-1::-2]) # 倒着切

    2.相关的"增删改查"操作 (这里重点!!!敲黑板!!!!!)

    添加:

         ①append()         追加,  在后面添加

         ② insert(位置,元素)        插入指定元素,   按照索引添加

         ③expend     迭代添加,  把传递进去的参数进行迭代,把每一项添加到列表的末尾

    lst = ["凡人修仙传", "诛仙", "神墓"]
    # 添加 append() 追加. 在后面添加
    lst.append("看见")
    lst.append("追风筝的人")
    
    # 插入 insert(位置, 元素), 效率相对比较低
    lst.insert(1, "琴帝")
    
    # 迭代添加, 把传递进去的参数进行迭代. 把每一项添加到列表的末尾
    lst.extend(["胡辣汤","猪蹄子", "猪头肉", "五花肉"])
    
    print(lst)

    删除:

          ①pop(索引)         根据索引删除,  默认从后往前删

          ②remove(元素)     根据元素删除,  当元素不存在时就会报错

           ③del    例:del lst[::2]       用切片或者索引删除,不常用!!!

            ④clear     例: lst:clear     清空!

    修改:

            索引修改

            lst[索引] = 元素

    lst = ["苏秦", "武大", "武二", "宝元", "李诞", "池子", "王建国"]
    lst[3] = "松江" # 通过索引修改  index out of range 索引下标越界# # print(lst)
    lst[1:3] = ["麻花藤"] # 迭代更新(不常用)
    print(lst)
    lst[1:5:2] = ["麻花藤", "码云"]  # 坑: 如果步长不是1. 元素的个数必须要和切片的个数一致
    print(lst)

    查询:

              for循环

     lst = ["jay", "wlh", "lzw", "wf"]
    for item in lst: # item是lst中的每一项
        print(item)
    
    for i in 123:  # 'int' object is not iterable
        print(i)

    3.列表的嵌套

            多个列表互相嵌套.

    lst = [["张艺谋", "冯小刚", "陈凯歌"], ["李安", "王家卫", "王晶"], ["周杰伦",["abc", "alex_wusir", ["胡辣汤", "c"]], "风扇哥"]]
    print(lst[1][1][2])
    
    # 把王晶换成"贾樟柯"
    
     lst[1][2] = "贾樟柯"
     print(lst)
    
    # 降维操作 ["哈哈", "hehe", "houhou"] 一维  [[1,2,3], [12,4,5], [6,7,8]] 二维
    # 数数
    lst[2][1][1] = lst[2][1][1].replace("_", "$")
    print(lst)

    4.列表的其他操作

           ①count()    计数

    lst = ["太白", "太白", "太黑", "日天", "女神", "alex", "太白"]
    print(lst.count("太白")) # 查看xxx元素出现的次数

           ②sort()     排序  reverse = True

    lst = [1, 8,12,22,1,1,2,33,4,5]
    lst.sort() # 排序. 默认升序
    lst.sort(reverse=True) # reverse 反向, 降序
    print(lst)

           ③reverse()    翻转 

    lst = ["赤木", "樱木花道", "流川枫", "三井"]
    lst.reverse() # 把列表翻转
    print(lst)

      ④len()     求长度

    lst= [1,2,3,4,5,"胡辣汤"]
    print(len(lst)) # 查看列表中元素的个数
    
    list # 按住ctrl +鼠标左键

     

    5. 元组

      能装对象的对象.   不可变, 一旦确认好, 不可更改.

      只读列表

      可以迭代

    # 元组用()表示, 只读列表. 冯提莫
    # tu = ("DNF", "LOL", "王者荣耀", "QQ飞车", "炫舞", {}, tuple(), [])
    # print(tu)
    # # tu[1] = "呵呵" # 'tuple' object does not support item assignment
    # print(tu)
    
    # 元组也有索引和切片
    # print(tu[3:5])
    # print(tu[3:7:2])
    
    # 元组有坑
    # 空元祖
    # tu = tuple() # 固定写法
    # 元组中如果只有一个元素
    # tu = (1) # 不是元组   <class 'int'>
    # tu = (1, ) # 这个是元组 <class 'tuple'>
    # print(type(tu))
    
    # 好习惯: 写元组的时候末尾加个逗号
    
    # tu = ("锅包肉", "酸菜炖粉条+五花肉", "红烧鲤鱼", "红烧肉")
    # # 元组也是可迭代的
    # for item in tu: # 可以使用for循环
    #     print(item)
    
    
    tu = (1, "哈哈", "胡辣汤", ["忍者", "神龟"])
    # tu[1] = "呵呵" # 元组不可变
    tu[3] = ["我是新列表"] # 改变了指向. 报错
    tu[3].append("孙悟空") # 元组没改. 该的是元素内部 没有改变元组的指向. 不报错
    print(tu)

           

        

    6.元组的嵌套

      和列表一样.  都可以互相嵌套

      元组的不可变:  指向不变

    7. range( 重点,难点 )

      数数

      range(n)     [0, n)

      range(m,n)     [m, n)

           range(m,n,p)      [m, n)  每隔p取一个

            重点!!!!!!!!!!!!!!!!!!!!! 

    for  i  in range(len(lst)):
       i 索引
       lst[i]    元素

    参考:

    # i = 1
    # while i <=100:
    #     print(i)
    #     i += 1
    
    #  range(参数)  [0,参数)
    # for i in range(20): #  range()可以被迭代 0-9
    #     print(i)
    
    # range(参数1, 参数2)  [参数1, 参数2) 切片
    # for i in range(10, 20):
    #     print(i)
    
    # range(参数1, 参数2, 参数3)  [参数1, 参数2) 每隔参数3个位置取一个
    # for i in range(10, 20, 3):
    #     print(i)
    
    # lst = ["周杰伦", "动画城", "大风车", "随便加", "宝宝", "孟孟", "萌萌", "孟萌"]
    
    # for item in lst: # 只能拿到元素. 获取不到索引
    #     print(item)
    
    # for i in range(len(lst)): # i就是索引 lst[i]元素
    #     print(i, lst[i])

    思考题.

    有如下列表
    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    循环打印列表中的每个元素,遇到列表则再循环打印出它⾥⾯的元素。

    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    for i in li:
        if type(i) == list:
            for a in i:
                if type(a) == str:
                    print(a.lower())
                    continue
                print(a)
        elif type(i) == str:
            print(i.lower())
        else:
            print(i)
  • 相关阅读:
    [Xcode 实际操作]九、实用进阶-(2)遍历设备(输出系统)上的所有字体
    [Xcode 实际操作]九、实用进阶-(1)隐藏顶部的状态栏
    [Xcode 实际操作]八、网络与多线程-(25)实现ShareSdk的社会化分享功能
    [Xcode 实际操作]八、网络与多线程-(24)社会化分享功能开发包的安装和配置:微信、QQ、微博
    [Xcode 实际操作]八、网络与多线程-(23)多线程的同步与异步的区别
    Moving Tables-贪心
    HTTP状态码
    CSS3中transform,transition和animation的简单介绍和使用方法演示样例
    用NODEJS处理EXCEL文件导入导出,文件上传
    内存区域划分
  • 原文地址:https://www.cnblogs.com/selina1997/p/10040465.html
Copyright © 2011-2022 走看看