• python全栈闯关--4-列表和元祖


    列表

    列表中的值按照逗号隔开,是有序的,支持切片。

    li = ['wang', 'li', 'mf', 'zx', 'qs']

    1、增删改查

      增:

    • append追加元素到结尾
    • insert插入元素到索引位置
    • extend迭代添加,拆分成每个元素的最小值添加

     如果插入元素不可迭代,将会报错:“TypeError: 'XXX' object is not iterable

     append和insert插入可迭代元素,不会拆分插入,extend会拆分插入

    li.append([1, 2, 3])
    ['wang', 'li', 'mf', 'zx', 'qs', [1, 2, 3]]
    
    li.insert(3, [1, 2, 3])
    ['wang', 'li', 'mf', [1, 2, 3], 'zx', 'qs']
    
    li.extend([1, 2, 3])
    ['wang', 'li', 'mf', 'zx', 'qs', 1, 2, 3]

    删:

    • pop按照索引值删除,并返回值。未加索引值,默认删除最后一个。
    • remove 按照元素删除
    • clear清空列表
    • del从内存中删除列表,也可以切片删除
    print(li.pop(1))  # 删除所以未1的记录,并返回
    print(li.pop())  # 删除最后1个记录,并返回
    
    li.remove('zx')  # 删除列表内容为zx的记录 
    
    li.clear()  # 清空列表
    
    del li  # 从内存中删除,此时打印将会报错
    del li[0:2]  # 切片删除,索引0到1的记录

    改:

    • 按照索引修改,索引值对应部分改为所提供值
    • 按照切片修改,切片部分被所提供内容迭代替换,如果提供值不能迭代,将会报错
    #索引修改
    li[0] = '超神'  # 索引0位置的值,替换未后续值
    li[1] = ['doubule kill', 'three kill']  # 直接修改值为列表
    
    #切片替换
    li[0:2] = 'ni超超超厉害'  # 去除切片的部分,赋值的值用迭代处理
    li[0:2] = 123  # 无法迭代,报错TypeError: can only assign an iterable
    li[0:2] = [1, 2, 3, '春哥', '无敌']  # 按照每个元素,迭代替换切片部分

    查:

    # 遍历每一个值
    for i in li:
        print(i)
    
    # 切片访问
    print(li[0:3])  # 结果为列表

      其他方法:

    print(li)
    print(len(li))  # 列表个数
    print(li.count('春哥'))  # 求值出现的次数
    print(li.index('无敌'))  # 求值出现位置的index
    
    li = [1, 4, 2, 3, 4, 5, 8, 9, 1]
    li.sort()  # 正向排序
    print(li)
    li.sort(reverse=True)  # 反向排序
    print(li)
    
    li.reverse()  # 列表反转,不排序
    print(li)

     字符串和int同时出现在列表中,不能进行排序操作

     默认情况下,使用sort排序速度是最快的

    2、列表的循环

    li = ['lily', '雾蒙蒙', ['zxw', 'male', 'order', 32], 34]
    # 按照顺序打印每个内容
    for i in li:
        print(i)

    3、列表的嵌套

    li = ['lily', '雾蒙蒙', ['zxw', 'male', 'order', 32], 34]
    # 获取元素1的第一个字符
    print(li[1][1])  #
    
    # 元素0的字母大写
    print(li[0].upper())  # LILY
    
    # 第一个元素大写,并重写入原本的列表
    name = li[0].capitalize()
    li[0] = name
    print(li)  # ['Lily', '雾蒙蒙', ['zxw', 'male', 'order', 32], 34]
    
    # 对元素1进行替换操作
    print(li[1].replace('', ''))  # 雾淡淡
    li[1] = li[1].replace('', '')
    
    # 对子列表进行操作,字母代谢
    li[2][0] = li[2][0].upper()  # ['Lily', '雾淡淡', ['ZXW', 'male', 'order', 32], 34]
    print(li)

    4、元祖

    元祖为只读列表,可循环、查询、切片

    儿子不能变,孙子可能可以改

    t = ('2', '2', '123', ['name', 'age', 'hi'], 'adf')
    print(t[3])  # ['name', 'age', 'hi']
    print(t[1:3])   # ('2', '123')
    
    # Reading values for tuple loops
    for i in t:
        print(i)
    
    # slice reads the value of index 3 and changes it to uppercase
    t[3][1] = t[3][1].upper()
    print(t)  # ('2', '2', '123', ['name', 'AGE', 'hi'], 'adf')
    # List in tuple can be modified and added
    t[3].append('god')
    print(t)  # ('2', '2', '123', ['name', 'AGE', 'hi', 'god'], 'adf')

    元祖默认情况下不可以改,但是如果元祖的子元素为列表时,可以修改,叫做可变动元祖

    5、range

    print('range between 3 to 10')
    for i in range(3, 10):
        print(i)
    
    print('range between 0 to 10')
    for i in range(10):
        print(i)
    
    print('range between 0 to 10,step 3')
    for i in range(0, 10, 3):
        print(i)
    
    print('range between 10 to 0,step -2')
    for i in range(10, 0, -2):
        print(i)
    
    print("if the start value less then the end value and the step is negative ! "
          "No error will be reported and empty will be returned, ")
    for i in range(0, 10, -1):
        print(i)

    range中,生成的列表范围为左开右闭区间,即顾头不顾尾

    如果开始值小于结束值,且step为负数。将会不报错且返回结果为空

    6、练习

    
    # 5,查找列表li中的元素,移除每个元素的空格,
    # 并找出以’A’或者’a’开头,并以’c’结尾的所有元素,
    # 并添加到一个新列表中,最后循环打印这个新列表。
    
    # Method 1
    # Using startwith and endwith functions to determine string rules
    li = ['taibai ', 'alexC', 'AbC ', 'egon', ' Ritian', ' Wusir', '  aqc']
    b = []
    for i in li:
        s = i.strip()
        if (s.startswith('A') or s.startswith('a')) and s.endswith('c'):
            b.append(s)
    for i in b:
        print(b)
    
    # Method 2
    # Using == rule and upper function to determine string rules
    li = ['taibai ', 'alexC', 'AbC ', 'egon', ' Ritian', ' Wusir', '  aqc']
    b = []
    for i in li:
        s = i.strip()
        if s[0].upper() == 'A' and s[-1] == 'c':
            b.append(s)
    print("Using == rule and upper function to determine string rules")
    for i in b:
        print(b)
    
    
    
    # 6、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
    # 敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]
    # 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
    # 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
    
    li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    new_li = []
    info = input("评论")
    for i in li:
        if i in info:
            l = len(i)
            info = info.replace(i, "*" * l)
    new_li.append(info)
    
    print(new_li)
  • 相关阅读:
    UIView动画设置
    窗口与视图的基本概念
    OC基本框架之-字典类型
    将博客搬至CSDN
    objective-c中的深、浅拷贝
    基础算法之二分法查找
    C语言中格式字符指定输出项的数据类型和输出格式总结
    JavaScript学习笔记(9)——JavaScript语法之流程控制
    JavaScript学习笔记(8)——JavaScript语法之运算符
    JavaScript学习笔记(7)——JavaScript语法之函数
  • 原文地址:https://www.cnblogs.com/zxw-xxcsl/p/11405934.html
Copyright © 2020-2023  润新知