zoukankan      html  css  js  c++  java
  • day04

    1. 列表

    1.1 定义(list)

    • 存放一些数据的容器 比如衣柜 书包
    • 列表相比于字符串, 不仅可以存放不同的数据类型.而且可以存放大量的数据
    lst = [1, 'a', True, [2, 3, 4]]   #中括号,逗号分开
    可以是数字,字符串,布尔值,中文,列表等
    
    • 32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素

    • 列表是有序的,可以索引和切片

    • print(lst[0])
      print(id(lst[0]))
      id获取对象的内存地址
      

    1.2 列表的创建

    # 创建一个列表有三种方式:
    
    # 方式一:(常用)
    lst = [1, 2, '宝元']
    
    # 方式二:(不常用)
    lst = list()  # 空列表
    # lst = list(iterable)  # 可迭代对象
    lst = list('123')
    print(lst)  # ['1', '2', '3']
    
    # 方式三:列表推导式
    lst = [i for i in range(1,5)]
    print(l1)  # [1, 2, 3, 4]
    

    1.3 列表的索引/切片

    lst = ['a', 'b', '宝元', 3, 666]
    print(lst[0])    # a
    print(lst[-1])   # 666
    print(lst[1:3])  # ['b', '宝元']
    print(lst[:-1])  # ['a', 'b', '宝元', 3]
    print(lst[::2])  # ['a', '宝元', 666]
    print(lst[::-1]) # [666, 3, '宝元', 'b', 'a']
    
    • 索引的一个值没用中括号,,切片结果都有中括号

    1.4 增

    append() :追加  #(在列表的最后位置添加一个内容) 
    insert() :插入  #以后尽量不要使用(当数据量比较大的时候会影响效率) **可以选择插入的位置**
    extend() :迭代添加
    
    lst = ["你好","alex","wusir",1,True,"123"]
    lst.append("大煎饼")  
    print(lst)   #['你好', 'alex', 'wusir', 1, True, '123', '大煎饼']
    
    lst.insert(2,"大煎饼")  
    print(lst)   #['你好', 'alex', '大煎饼', 'wusir', 1, True, '123']
    
    lst.extend("可迭代的内容")  # 迭代添加
    print(lst)  #['你好', 'alex', 'wusir', 1, True, '123', '可', '迭', '代', '的', '内', '容']
    
    # 练习:输入用户信息, 添加到列表中
    
    lst = []
    while True:
        name = input("请输入你要录入的员工信息, 输入Q退出:")
        if name.upper() == 'Q':
            break
    lst.append(name)
    print(lst)
    

    1.5 删

    del lst  -- 删除整个列表
    del lst[0] -- 通过索引删除
    del lst[1:2] -- 切片删除
    del lst[1:4:2] -- 步长删除
    
    clear() :清空列表
    remove():通过元素进行删除
    
    pop()
      1. 默认删除最后一个
      2. 有返回值返回的是被删除的元素
      3. 通过索引进行删除
    
    lst = ["你好","alex","wusir",1,True,"123"]
    del lst		#强制删除,不存在了
    print(lst)  #没有了,报错,lst未定义
    
    del lst[0]   #通过索引删除
    print(lst)   #['alex', 'wusir', 1, True, '123']
    
    del lst[0:3] # 通过切片删除
    print(lst)   #[1, True, '123']
    
    del lst[0:3:2] # 通过步长删除
    print(lst)     #['alex', 1, True, '123']
    
    lst.pop()  #默认删除最后一个
    print(lst)  #['你好', 'alex', 'wusir', 1, True]
    
    lst.pop(3)  #通过索引进行删除
    print(lst)   #['你好', 'alex', 'wusir', True, '123']
    
    lst.remove("wusir")  #通过元素名字进行删除
    print(lst)   #['你好', 'alex', 1, True, '123']
    
    lst.clear()   #清空
    print(lst)   #[]
    

    1.6 改 不用重新赋值,与字符串有区别

    lst[0] = 1  #通过索引修改
    lst[1:2] ="qaaa"   # 通过切片修改,元素可以超出切片的位数
    lst[1:4:2] = "12"  # 通过切片和不为1的步长修改,占几个位置就添加几个,必须一一对应
    
    lst = ["你好","alex","wusir",1,True,"123"]
    lst[1] = "大黑"
    print(lst)   #['大黑', 'alex', 'wusir', 1, True, '123']
    
    lst[1:3] = "345"     # 比切片多  #['你好', '3', '4', '5', 1, True, '123']
    lst[1:3] = "大黑"     #一样多  #['你好', '大', '黑', 1, True, '123']
    
    lst[1:3] = "大"    #比切片少
    print(lst)       #['你好', '大', 1, True, '123']
    
    lst[1:4:2] = 1,2   #多了少了都会报错
    print(lst)      #['你好', 1, 'wusir', 2, True, '123']
    
    
    • list和str是不一样的.lst可以发生改变.所以直接就在原来的对象上进行了操作

    1.7 查 切片去查,或者for循环去查

    1.7.1 列表是一个可迭代对象, 所以可以进行for循环

    lst = ["你好","alex","wusir",1,True,"123"]
    for i in lst:
    print(i)      #
    结果:
    你好
    alex
    wusir
    1
    True
    123
    
    lst = ["你好","alex","wusir",[1,True],"123"]
    for i in lst:
        print(i)
    结果:
    你好
    alex
    wusir
    [1, True]
    123
    

    1.7.3 通过索引查找

    lst = ["你好","alex","wusir",[1,True],"123"]
    print(lst[3])    # [1, True]
    print(lst[3][1])  # True
    

    1.8 其他操作

    lst = ["你好","alex","wusir",1,True,"123"]
    反转
    lst.reverse()  # 把这个列表进行调转
    print(lst)   #['123', True, 1, 'wusir', 'alex', '你好']
    
    lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
    
    # 排序:必须是数字,其他会报错  
    lst.sort()  # 升序 排序
    print(lst)  #[1, 2, 2, 2, 2, 3, 4, 5, 8, 11, 84, 88]
    
    lst.sort(reverse=True)  # 降序 排序
    print(lst)   #[88, 84, 11, 8, 5, 4, 3, 2, 2, 2, 2, 1]
    
    # 统计
    lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
    num = lst.count(2)  # 统计元素2出现的次数,和字符串中功能一样
    print(num)
    
    # 通过元素获取下标
    lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
    n = lst.index(88)   #索引,
    print(n)            #10
    
    # 获取长度
    lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
    print(len(lst))
    

    1.8 列表的镶嵌

    lst = ["你好","alex","wusir",[1,True],"123"]
    print(lst[3])    # [1, True]
    print(lst[3][1])  # True
    

    2. 元组

    2.1 定义

    • 元组:不可变的列表,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.与字符串类似

    2.2 元组的查

    tu = ("你好","alex","wusir",(1,True),"123")
    tu1 = tu[1]  # 支持下标
    print(tu1)    #alex
    
    tu2 = tu[0:4]   # 进行切片查找
    print(tu2)    #('你好', 'alex', 'wusir', (1, True))
    
    tu = ("你好","alex","wusir",(1,True),"123")
    for i in tu:
        print(i)  # 进行for循环
    结果:
    你好
    alex
    wusir
    (1, True)
    123
    

    2.3 元组的镶嵌

    • tu = ("你好","alex","wusir",(1,True),"123")
      

    3. range

    1562664109571

  • 相关阅读:
    arduino电子艺术PWM直流电机电调实验
    横坐标轴移动位置
    将不才则三军倾
    Source Insight常用快捷键及注释快捷键设置
    dos2unix批量转换的脚本
    win8: ListView
    win8: Asynchronous Programming in JavaScript with “Promises”
    WindJS 中的$await
    iphone:关于沙盒 存储路径
    win8: hello gril
  • 原文地址:https://www.cnblogs.com/lvweihe/p/11160211.html
Copyright © 2011-2022 走看看