• python基础 day4 列表、元组、range


    一、列表初识 list

    • 列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据。

    • 32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。

    • 列表是有序的,有索引值,可切片,方便取值。

    1.列表的索引、切片、步长

    li = [100, 'jason', False, [1, 2, 3]]
    # 索引
    print(li[0], type(li[0]))
    print(li[1], type(li[1]))
    print(li[-1], type(li[-1]))
    
    # 切片
    print(li[1:3])
    print(li[:2])
    print(li[1:])
    
    # 步长
    print(li[::2])
    print(li[::-2])
    

    2.列表的增删改查

        1. append 追加
      l1 = ['jason', '杨森', '真哥', '大富']
      l1.append('臭弟弟')
      print(l1)
      
        1. insert 插入
      l1 = ['jason', '杨森', '真哥', '大富']
      l1.insert(1, 'aloha')
      print(l1)
      
        1. extend 迭代追加
      l1 = ['jason', '杨森', '真哥', '大富']
      l1.extend('abcd')
      print(l1)
      l1.extend(['aloha', 'fuck'])
      print(l1)
      
        1. pop 按照索引位置删除
      l1 = ['jason', '杨森', '真哥', '大富']
      l1.pop(1)
      print(l1)
      
      print(l1.pop(-2))  # 返回值就是删除的元素
      print(l1)
      
      l1.pop()  # 默认删除列表中最后一个元素
      print(l1)
      
        1. remove 指定元素删除,如果由重名元素,默认删掉从左至右第一个
      l1 = ['jason', '杨森', '真哥', '大富']
      l1.remove('真哥')
      print(l1)
      
        1. clear 清空列表
      l1 = ['jason', '杨森', '真哥', '大富']
      l1.clear()
      print(l1)
      
        1. del 列表和字典通用的方法
      l1 = ['jason', '杨森', '真哥', '大富']
      del l1[2]  # 按照索引删除
      
      l2 = ['jason', '杨森', '真哥', '大富', 'aloha', 'carly']
      del l2[::2]  # 按照切片(步长)删除
      print(l2)
      
    l1 = ['jason', '杨森', '真哥', '大富']
    l1[1] = '臭屌丝'  # 按照索引修改
    print(l1)
    
    l1[::2] = ['hhh', 'aloha']  # 按照切片(步长)去改
    print(l1)
    
    l1 = ['jason', '杨森', '真哥', '大富']
    for i in l1:
        print(i)
    

    3.列表的嵌套(重点)

    引入:

    l1 = [1, 2, 'carly', [1, 'jason', 3]]
    
    # 1.将l1中的'carly'变成大写并放回原处
    l1[2] = l1[2].upper()
    print(l1)
    
    # 2.给小列表[1, 'jason', 3]追加一个元素,'python'
    l1[-1].append('python')
    print(l1)
    
    # 3.将列表中的'jason'通过字符拼接的方式在列表中变成jasonnb
    l1[-1][1] += 'nb'
    print(l1)
    

    练习:

    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # 将列表lis中的"tt"变成大写(用两种方式)。
    lis[3][2][1][0] = lis[3][2][1][0].upper()
    print(lis)
    # 将列表中的数字3变成字符串"100"(用两种方式)。
    lis[1] = '100'
    lis[3][2][1][1] = '100'
    print(lis)
    # 将列表中的字符串"1"变成数字101(用两种方式)。
    lis[3][2][1][2] = 101
    print(lis)
    

    二、元组 tuple (了解)

    只读列表,可以存大量的数据,可以索引,切片(步长)

    tu = (1, 2, 'carly', [1, 'jason', 3])
    

    元组中嵌套的列表可以任意增删改查

    tu = (1, 2, 'carly', [1, 'jason', 3])
    
    tu[-1].pop(1)
    print(tu)
    
    tu[-1].remove(1)
    print(tu)
    
    tu[-1].clear()
    print(tu)
    
    tu[-1].append(1)
    tu[-1].insert(0, 'jason')
    tu[-1].extend([3, 'carly'])
    print(tu)
    

    三、range

    类似于列表,子定制数字范围的数字列表

    r = range(10)
    print(r)
    for i in r:
        print(i)
    
    for i in range(1, 10):
        print(i)
    
    for i in range(1, 10, 2):
        print(i)
        
    l1 = ['jason', '杨森', '真哥', '大富']
    for i in range(len(l1)):
        print(i)
    

    四、练习

    练习一

    敏感词检测
    开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:敏感词列表 list1 = ["葵", "明日花绮罗", "三上悠亚", "天使萌"]则将用户输入的内容中的敏感词汇替换成等长度的(三上悠亚就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。

    list1 = ["葵", "明日花绮罗", "三上悠亚", "天使萌"]
    user_talk = []
    while 1:
        s1 = input('请输入评论内容:')
        for i in list1:
            if i in s1:
                s1 = s1.replace(i, len(i) * '*')
        user_talk.append(s1)
        print(user_talk)
    

    练习二

    for 循环打印嵌套列表

    # 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
    list1 = [1, 2, 3, "jason", [4, 5, 6, "carly"], 7, "love"]
    for i in list1:
        if type(i) == list:
            for j in i:
                print(j)
        else:
            print(i)
    

    练习三

    字符串反转

    #方法一:
    name = 'yangsen'
    temp = []
    name2 = ''
    for i in name :
        temp.insert(0, i)
    for j in temp:
        name2 += j
    print(name2)
    
    #方法二
    print(name[::-1])
    

    练习四

    列表去重

    list1 = [1, 2, 2, 3, 3, 3, 3, 3, 3, 4, 5, 5, 5, 6]
    list2 = []
    for i in list1:
        if i not in list2:
            list2.append(i)
    print(list2)
    

    练习五

    python打印乘法口诀表

    for i in range(1, 10):
        for j in range(1, i+1):
            print('{}*{}={}	'.format(j, i, i*j), end='')  # end=''代表以''结尾,''为空代表不换行
        print()
    
  • 相关阅读:
    移动端网页 -- 安卓与IOS兼容
    item上下自动循环滚动显示
    刮刮奖 --- 可以自定义在图层下添加文字等等信息
    内核终端判断,微信?QQ?ipad?IE?移动?Google?opera……
    flexbox布局
    刮刮奖
    constructor
    获取地址栏参数
    this对象
    函数
  • 原文地址:https://www.cnblogs.com/west-yang/p/12543864.html
Copyright © 2020-2023  润新知