zoukankan      html  css  js  c++  java
  • day04——列表、元组、range

    day04

    列表

    列表——list

    ​ 有序,可变,支持索引

    • 列表:存储数据,支持的数据类型很多:字符串,数字,布尔值,列表,集合,元组,字典,用逗号分割的是一个元素
    • id() :获取对象的内存地址
    lst = ['alex',123,True] # 用逗号分割的是一个元素
    print(lst) # 结果是['alex',123,True]
    print(lst[0])
    print(id(lst[0]))
    # id获取对象的内存地址
    
    lst[0] = "dsb"
    print(lst)  # ['dsb', 123, True, '黑哥']
    
    # s = "alex" # 字符串是不可变数据
    # s = "wusir"
    # s[0] = "b"
    # print(s)
    
    列表的增加
    • append():追加,在末尾的位置加一个
    # lst.append("大煎饼")  #追加(在列表的最后位置添加一个内容)
    # print(lst)
    
    • insert():插入,insert(像插入的位置下标,'内容')插入到位置前面

    insert()以后尽量不要使用(当数据量比较大的时候会影响效率)

    # lst.insert(2,"wusir")  #插入  以后尽量不要使用(当数据量比较大的时候会影响效率)
    # print(lst)
    
    • extend(可迭代对象):扩展 ——迭代添加(数字和布尔值不能),把里面的内容一个一个的放在后面
    # lst.extend("可迭代的内容")  # 迭代添加
    # print(lst)
    
    列表的删除
    • del (不是列表的专属方法) :可以配合索引删除,可以配合切片和步长删除,可以强制删除空间
    # del lst[0]  # 通过索引删除
    # print(lst)
    
    # del lst[0:3] # 通过切片删除
    # print(lst)
    
    # del lst[0:3:2] # 通过步长删除
    # print(lst)
    
    • remove():通过元素名字删除,删除左边第一个
    # lst = ["dsb",123,"dsb",True,"黑哥"]
    # lst.remove("dsb") # 移除 -- 通过元素名字进行删除
    # print(lst)
    
    • pop():没有指定,默认删除最后一个

    pop(0):可以指定索引删除

    ret = lst.pop(0) :可以返回被删除的元素

    # lst.pop()  # 弹 -- 默认删除最后一个
    # print(lst)
    
    # lst = ["dsb",123,True,"黑哥"]
    # lst.pop(2)   # 通过指定索引进行删除
    # print(lst)
    
    • clear():清空 结果是一个空列表 :[]
    # lst.clear()  #清空
    # print(lst)
    
    列表的改
    • 通过索引修改
    • 可通过切片:被迭代进来的,可超出切片的数量,数字和布尔值不行,主要是索引取得留下谁 :123456(不能运行) 1,2,3,4,5,6(可运行) "123456"(可运行)
    • 可通过切片和步长:后面的内容数量必须与切片的数量相等
    lst = ['杨紫','高圆圆','刘亦菲','关晓彤']
    lst[0] = '杨幂'  # 通过索引修改
    print(lst)  *****
    
    lst[0:3] = '你好美11111111'  # 被迭代进来的,数字和布尔值不行,主要是索引取得留下谁 :123456(不能运行)  1,2,3,4,5,6(可运行行)  "123456"(可运行)
    print(lst)  # ['你','好','美',’1',....,'1','关晓彤']
    
    lst[0:4:2] = '好嗨哦' # 运行错误
    lst[0:4:2] = '好嗨' #后面的内容数量必须与切片的数量相等
    print(lst)  # ['好','杨紫','嗨','刘亦菲']
    
    
    列表的查
    • 通过for循环
    # for 循环
    # lst = ["dsb",123,"dsb",True,"黑哥"]
    # for i in lst:
    #     print(i)
    
    
    增删改查的使用
    lst = ['你', '好', '啦', '啊']
    lst.append('牛')
    print(lst)
    lst.insert(1, '牛一')
    print(lst)
    lst.extend('你好')
    print(lst)
    
    lst.pop(1)
    print(lst)
    lst.remove('牛')
    print(lst)
    lst1 = ['asd', 'dfg']
    lst1.clear()
    print(lst1)
    
    lst[4] = '朱'
    print(lst)
    lst[0:4] = '12'
    print(lst)
    lst[0::2] = '36'
    print(lst)
    
    for i in lst:
        print(i)
    
    
    列表的嵌套

    通过索引进行取值

    不管什么类型进行切片的时候获取到的都是原数据类型

    # a = lst[-1][-1][-2]
    # print(a)
    # 不管什么类型进行切片的时候获取都到都是源数据类型
    
    # lst = [1,"alex","春生","小东北","渣弟",
    #        ["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],
    #     "冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
    # print(lst[-1][1][1][0])
    
    

    元组

    元组——tuple

    有序,不可变,支持索引

    元组(tuple)其实就是一个不可以修改的列表

    元组的查

    for语句查

    也可以用索引,可以用切片,也可以加步长,元组切片结果也是元组

    元组不能进行修改,不可变

    应用场景

    元组用于存储一些比较重要的信息,元组在配置文件中会使用,存放一些用户密码的时候

    常量也是在配置文件中使用

    修改——一般不推荐

    转成列表再进行修改

    # tu = (1,"alex",True,"大黑哥",[1,2,3])
    # lst = [1,"alex",True,"大黑哥",[1,2,3]]
    # print(tu)
    
    # tu = (1,"alex",True,"大黑哥",[1,2,3])
    # print(tu[0:6])
    
    # for 循环
    # for i in tu:
    #     print(i)
    
    

    range

    range——范围

    print(list(range(0,10))) 顾头不顾尾

    面试题

    python3中range(0,10) 是一个可迭代的对象,写得是怎样的打印的时候就是怎样 :print(range(0,10)) # 结果是 range(0,10)

    print(list(range(0,10)))# 结果是[0,1,2,3,4,5,6,7,8,9]
    
    

    python2中 的 range 获取到一个列表

    range(0,10) # 结果是[0,1,2,3,4,5,6,7,8,9]
    
    

    xrange和python3中range是相似的,都是可迭代对象,返回结果是 range(0,10)

    range 和切片一样:range 第一个是起始位置,第二个是终止位置,第三个是步长,步长默认为1,终止位置和切片一样都是顾头不顾尾,他们之间用逗号分开

    print(list(range(1,10,3))) # 结果是 [1,4,7]
    print(list(range(10,-2,-1))) # 结果是 [10,...,-1]
    print(list(range(10))) # 结果是 [0,1,...,9]
    
    

    作用:range #可以让for循环数字

    for i in range(55):
    	print(i) #  结果是打印 1到54
    for i in range(100, 0, -1):
        print(i)
    
    # 使用for循环和range 打印 100 ~ 1
    # for i in range(100,0,-1):
    #     print(i)
    
    # for i in range(1,101,2):
    #     print(i)
    
    # for i in range(0,101,2):
    #     print(i)
    
    # for i in range(0,101,6):
    #     print(i)
    
    

    range 不能和while一起使用

    # 错误示例:
    # while range(0,10):
    #     print(1)
    
    
    while和for的比较
    # lst = []
    # flage = True
    # while flage:
    #     name = input("请输姓名:")
    #     lst.append(name)
    #     if len(lst) == 3:
    #         flage = False
    # print(lst)
    
    
    # lst = []
    # for i in range(3):
    #     lst.append(input("请输入姓名:"))
    # print(lst)
    
    
  • 相关阅读:
    CNN网络架构演进:从LeNet到DenseNet
    Dropout VS Batch Normalization
    Batch Normalization
    达梦数据库序列号升级的办法
    [Function Programming] Function modelling -- 9. Monad Transformers
    [Functional Programming] Function modelling -- 8. Compose Functors
    [Javascript] HTML5 DOM project
    [ML L3] SVM Intro
    博客粘贴图片自动上传到服务器(Java版)
    wordpress粘贴图片自动上传到服务器(Java版)
  • 原文地址:https://www.cnblogs.com/NiceSnake/p/11157977.html
Copyright © 2011-2022 走看看