• list


    append 末尾添加
    extend 迭代着增加多个
    insert 固定位置添加
    pop 默认删除最后一个,可根据索引删除, 有返回值
    del 按照索引或者切片删除
    remove 指定元素删除 如果有多个相同元素,则从左删除仅第一个
    clear清空列表
    l = ['索隆', 1, [1, 2, 3], 4]
    print(l[-1])  # 4 索引
    print(l[-1:])  # [4] 切片之后还是列表
    # 创建列表  list(可迭代对象) , 注意生成的列表是迭代着分开,而不是单独一个
    l1 = list('hello')
    print(l1)  # ['h', 'e', 'l', 'l', 'o']
    
    
    
    # 增加
    info = ['洛克斯', '山治', '波雅汉库克']
    info.append('香克斯')  # 插入末尾
    # print(info.append('香克斯')) # 不能这么用,返回是None
    print(info)
    
    while 1:
        name = input('输入姓名, 按Q退出')
        if name.upper() == "Q":
            break
        info.append(name)
    print(info)
    # 指定位置增加
    l2 = ['hello', 'world', '波雅汉库克']
    l2.insert(2, 'wow') # 索引是必须的,且放在前面
    print(l2)  # ['hello', 'world', 'wow', '波雅汉库克']
    
    # 迭代增加
    l = ['张三', '李四']
    l1 = [1, '2']
    l.extend(l1)
    print(l)  # ['张三', '李四', 1, '2']
    
    
    删除
    # pop 按照索引删除 有返回值
    
    l1 = ['洛克斯', '山治', 1]
    shan = l1.pop(-1)  # pop是有返回值得,返回值类型是各自元素的类型
    
    # l1.pop() 不指定索引 默认删除最后一个
    
    print(shan, type(shan))  # 1 <class 'int'>
    
    # remove 指定元素删除  如果有多个相同元素,则从左删除仅第一个
    
    l1 = ['洛克斯', '山治', 1, '山治']
    l1.remove('山治')
    print(l1) # ['洛克斯', 1, '山治']
    
    # clear 清空列表
    
    l = [1, 2, 3]
    l.clear()
    print(l)  # {}
    
    # del 按照索引或者切片删除
    
    l = [1, 9, 8, 2, 3, 4, 5, 6]
    del l[-1]  # 按照索引删除 删除6
    print(l)  # [1, 9, 8, 2, 3, 4, 5]
    del l[:4:2] # 按照切片删除 步长是2
    print(l)  # [9, 2, 3, 4, 5]
    
    
    

    # 改 按照索引改
    l1 = ['洛克斯', '山治', 'y', '山治']
    l1[0] = '路飞'
    print(l1)  # ['路飞', '山治', 1, '山治']
    # 改:按照切片
    l1 = ['洛克斯', '山治', 'y', '山治']
    l1[2:] = ['蒙奇D路飞', 'hello', 'hi']  # 没有指定长度,则数据个数可变
    print(l1)  # ['洛克斯', '山治', '蒙奇D路飞', 'hello', 'hi']
    l1[0:4:2] = ['罗宾', '草帽'] # 指定步长,则重新添加的个数要和以前一样,否则会报错
    print(l1)
    
    # 注意 切片改为为字符串时候是迭代这增加的(基本没啥用)
    l = ['太白', 'alex', 'WuSir', '女神']
    l[1:3] = 'abcdefg'
    print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神']
    
    # 按照切片(步长)改值(必须一一对应)  感觉没啥用 直接['对', '应']
    l = ['太白', 'alex', 'WuSir', '女神']
    l[::2] = '对应'
    print(l) # ['对', 'alex', '应', '女神']
    
    l1 = ['洛克斯', '山治', 'y', '山治']
    print(l1[0], type(l1[0])) # 洛克斯 <class 'str'>
    print(l1[::-2]) # ['山治', '山治']
    for i in l1:
        print(i)
    '''
    洛克斯
    山治
    y
    山治
    '''
    
    嵌套
    l = ['hello', 1, ['王路飞', 'God', ]]
    l[0] = l[0].upper()
    print(l)  # 第一个元素大写['HELLO', 1, ['王路飞', 'God']]
    l[2].append('666')
    print(l)
    l[2][1] = l[2][1]+'NB'  # God拼接NB
    print(l)  # ['HELLO', 1, ['王路飞', 'GodNB', '666']]
    
    l = [1, 2, 3, 'hello']
    for i in range(len(l)): # 打印索引
        print(i)
    
    '''
    0
    1
    2
    3
    '''
    
    for i in range(2, 101, 2): # 1-100的偶数。range的切片和补步长
        print(i)
    
    for i in range(100, 0, -1):  # 100到1 反向步长 ,顾头不顾尾。
        print(i)
    
    r = range(10)
    print(r)  # range(0, 10)
    for i in r:
        print(i) # 1--9 顾头不顾尾
    print(r[1])  # 1 索引
    
    l = range(5)
    print(l[1:3])  # 返回range(1, 3) 额竟然是这样
    print(l[-1])   # 4
    
    # for i in range(1, 5 ,-1):  # 方向不对 什么也不打印
    #         print(i)
    
    

    练习

    # .查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
    li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
    li1 = []
    for i in li:
        i = i.strip()  # 原来的i是不会改变的
        if i.upper()[0] == 'A' and i[-1] == 'c':
            li1.append(i)
    print(li1)
    
    # 敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    # 则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,
    # 则直接添加到列表中。
    li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    content = input('输入内容')
    content_list = []
    for word in li:
        if word in content:
            content = content.replace(word, '*'*len(word))
    content_list.append(content)
    print(content_list)
    
    # # 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    for i in li :
        if type(i) == list:
            for j in i:
                print(j)
        print(i)
    
  • 相关阅读:
    安卓项目文件夹解析
    网页嵌入腾讯视频方式
    Thinkphp3.23 连接MSSQL方法
    .NET 出现参数化查询 需要参数但未提供该参数的错误
    .NET 原理之 ViewState
    VS2012创建WebForm项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
    及时返回,业务逻辑异步实现
    linux常用命令
    ES报错引发的问题
    mall项目遇到的异常
  • 原文地址:https://www.cnblogs.com/jnsn/p/12731059.html
Copyright © 2020-2023  润新知