zoukankan      html  css  js  c++  java
  • day04

    1. 什么是列表

    列表是python的基础数据类型之⼀ ,列表由[]来表示,每一项使用逗号隔开. 列表什么都能装. 能装对象的对象.
    列表可以装大量数据,⽽且列表是有序的(按照你保存的顺序),有索引, 可以切⽚⽅便取值.

    2. 列表的索引和切片

    1. 列表和字符串⼀样也拥有索引
        lst = ["李白","杜甫","白居易"]
        print(lst[0])  # 李白
        print(lst[1])  # 杜甫
        print(lst[2])  # 白居易
    
        lst[1] = "王维"  # 注意: 列表是可以改变的,而字符串不能改变.
        print(lst)  # 李白 王维 白居易
    
        s = "向华强"
        s[1] = "" # 字符串不允许改变
        print(s)  # (报错)TypeError: 'str' object does not support item assignment
    2. 列表的切片
        lst = ["麻花藤", "王剑林", "⻢芸", "周鸿医", "向华强"]
        print(lst[0:3])  # ['麻花藤', '王剑林', '⻢芸']
        print(lst[:3])  # ['麻花藤', '王剑林', '⻢芸']
        print(lst[1::2])  # ['王剑林', '周鸿医'] 也有步⻓
        print(lst[2::-1])  # ['⻢芸', '王剑林', '麻花藤'] 也可以倒着取
    
        print(lst[-1:-3:-2])  # 倒着带步⻓

    2. 列表的增删改查

    *增加
    lst = ['赵四','施瓦辛格','黄渤','郭达森','赛利亚']
    
    # 在屁股添加
    lst.append("黄宏")  # 只能加一个元素(元素可以是一个列表),在原有的基础上进行的操作
    #在xxx位置插入xxxx内容
    lst.insert(1,"王力宏")  # 在指定位置插入添加,原来的元素向后移动⼀位.
    # 迭代添加,可以加多个元素.
    lst.extend(["麻花藤",'马云',"王健林",'许家印'])  # 迭代添加里面的多个元素
    print(lst)
    *删除
    lst = ['赵四','施瓦辛格','黄渤','郭达森','赛利亚']
    
    lst.pop() # 删除最后⼀个
    print(lst)  # ["赵四","施瓦辛格","黄渤,"郭达森"]
    data = lst.pop(2) # 返回的被删除数据(删除的是2号元素)
    print(data)  # 黄渤
    print(lst)  # ["赵四","施瓦辛格","郭达森"]
    
    lst.remove("赵四") # 删除元素
    lst.remove("刘能") # 如果不存在会报错
    
    # 切片删除 (指令)
    del lst[1:3]
    # 清空
    lst.clear()
    print(lst)
    *修改
    lst = ['王者农药',"魔兽世界","DNF","逆水寒","反恐精英"]
    
    lst[0] = "扫雷"
    print(lst)  # ['扫雷', '魔兽世界', 'DNF', '逆水寒', '反恐精英']
    
    lst [1:3]= ["跑跑卡丁车"] # 先删除后添加
    print(lst)  # ['王者农药', '跑跑卡丁车', '逆水寒', '反恐精英']
    
    lst [1::3] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数
    print(lst)  # ['王者农药', 'QQ华夏', 'DNF', '逆水寒', 'QQ三国']
    *查询(用for循环)
    lst = ["锅包肉","好人家火锅","巫山烤鱼","清水煮白菜","烤鸭"]
    for el in lst:  # element(元素)
        print(el) 

    3. 列表的嵌套

    lst = ["alex","gay","wusir",["范冰冰","李冰冰",[1,"火锅","ritian","凤爪"],"王冰冰"]]
    print(lst[3][2][1]) # 火锅
    lst[3][2][2] = lst[3][2][2].upper() # ,ritian大写后的字符串放入索引位置
    lst[3][2][0] = 100  # 1变成100
    lst[3][2][0] = lst[3][2][0] + 99  # 100 + 99 = 199
    print(lst)  #['alex', 'gay', 'wusir', ['范冰冰', '李冰冰', [199, '火锅', 'RITIAN', '凤爪'], '王冰冰']]

    4. list相关操作

    # 查询某个元素出现的次数
    lst = ["太白","wusir","太白","康琪","摇摆"]
    c = lst.count("太白") # 查询太⽩出现的次数
    print(c)  # 2
    
    # 找到列表元素的下标
    print(lst.index("太白"))  # 0
    
    # 排序数字(升序, 降序)
    lst = [1,5,3,4,3,2,44,3,2,22]
    lst.sort()  # 排序, 默认升序
    print(lst)  # [1, 2, 2, 3, 3, 3, 4, 5, 22, 44]
    lst.sort(reverse=True)  # 排序, 默认降序, reverse= Ture 降序
    print(lst)  # [44, 22, 5, 4, 3, 3, 3, 2, 2, 1]
    
    # 列表里的字符串,翻转倒序输出
    lst = ["晓雪","小茹","小花","晓梅"]
    lst.reverse()   # 翻转
    print(lst)  # ['晓梅', '小花', '小茹', '晓雪']

    # 求长度
    print(len(lst)) # 4

    5. 元组

    元组: 俗称不可变的列表.⼜被成为只读列表, 元组也是python的基本数据类型之⼀, ⽤⼩括号括起来, ⾥⾯可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能改. 
    # 元组中如果只有⼀个元素. ⼀定要添加⼀个逗号, 否则就不是元组
    tu = (1)
    print(type(tu))  # <class 'int'>
    tu = (1,)
    print(type(tu))  # <class 'tuple'>

    # 空元组的表示
    tu = tuple()
    tu = ("人民币","美元","英镑","欧元")
    tu.append("哈哈")     # 增加不行
    tu[0] = "日元"    # 不允许修改
    del tu[2]     # 删除也不行
    
    # 索引可以用(查询可以)
    print(tu[2])  # 英镑
    
    # 切片可以(切片后还是元组)
    print(tu[::2)  # ('人民币', '英镑')
    
    for el in tu:     # 遍历输出(循环可以)
        print(el)

    注意: 元组查询可以. 循环也可以. 切片也可以. 但就是不能改(增删改).
    # 关于不可变, 注意: 这⾥元组的不可变的意思是⼦元素不可变.
    # ⽽⼦元素内部的⼦元素是可以变, 这取决于⼦元素是否是可变对象. # 元组的第一层是不能进行赋值的, 内部元素没有要求 tu = (1,'哈喽',"how are you?",[]) tu[3].append("峰哥") # 这里的列表是子元素,而列表里面的子元素可以改变 print(tu) # (1, '哈喽', 'how are you?', ['峰哥']) tu = (1,'哈喽',"how are you?","alex") tu[3].upper() # (报错)转换成大写可以, 但是塞不进去了. print(tu)

    6. range

    # range()是一个可迭代对象,所以可以用for循环.
    
    range(n)  # 0 -> n-1
    for i in range(10):
        print(i)
     range(m,n)   # m -> n-1
    for i in range(1,10):
        print(i)
    
    range(m,n,q)  # m -> n-1 每q个取一个
    for i in range(1,10,3):
        print(i)
    
    for i in range(100,90,-1):
        print(i)
               0      1      2       3       4       5
    # lst = ["砂锅","馒头","盖浇饭","刀削面","大麻花","大煎饼"]
    
    # 获取到列表的索引. 拿到索引之后. 可以拿到元素
    for i in range(len(lst)):
        print(i)    # i就是list的索引
        print(lst[i])
    
    for el in lst:
        print(el)
  • 相关阅读:
    [DB] 数据库的连接
    JS leetcode 翻转字符串里的单词 题解分析
    JS leetcode 拥有最多糖果的孩子 题解分析,六一快乐。
    JS leetcode 搜索插入位置 题解分析
    JS leetcode 杨辉三角Ⅱ 题解分析
    JS leetcode 寻找数组的中心索引 题解分析
    JS leetcode 移除元素 题解分析
    JS leetcode 最大连续1的个数 题解分析
    JS leetcode 两数之和 II
    JS leetcode 反转字符串 题解分析
  • 原文地址:https://www.cnblogs.com/kangqi452/p/11280637.html
Copyright © 2011-2022 走看看