zoukankan      html  css  js  c++  java
  • Day 04 列表,元组

    一,列表的增删改查

    1,list(增删改查)

    列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开

    lst = [1, "周杰伦", True, False, ["可口可乐", "雪碧", "芬达"] ]print(lst)

    列表和字符串一样.也有索引和切片

    # lst = ["大阳哥", "赵明杰", "UZI", "赛利亚", "克伦特", "梅西", "哈登"]
    print(lst[3]) #打印取出列表的第三个元素
    print(lst[1:3])  #打印输出列表的第一项到第三项
    print(lst[-1::-2])  #  -1  - 从右往左. 1 : 一个一个取

    2,常用的功能:

    ① 增加:

    第一种 append()

    lst = ["周杰伦", "王力宏", "周润发"]
    lst.append("伍佰")    # 向列表中添加一个元素, 元素放在末尾. 把一个元素追加到列表的末尾
    print(lst)
    lst.append("周星星")
    print(lst)]

    第二种 insert()

    lst.insert(1, "马化腾")    # 把元素插入到指定位置. 元素的移动
    print(lst)

    第三种 extend()

    lst.extend(["马云", "王健林", "李嘉诚"])    # 迭代添加
    print(lst)
    # lst = []
    # while 1:
    #     name = input("请输入学生的名字")
    #     if name.upper() == "Q":
    #         break
    #     else:
    #         lst.append(name)    # 把名字添加到列表
    #
    # print(lst)

    ② 删除:

    lst = ["盖伦", "大白梨", "提莫", "大白梨"]

    第一种:pop()

    e = lst.pop()   # 返回删除的元素, 删除最后一个
    print(e)
    print(lst)
    e = lst.pop(1)  # 根据给出的索引进行删除
    print(e)
    print(lst)

    第二种:remove(元素)

    lst.remove("大白梨")
    lst.remove("大白梨")
    print(lst)

    第三种:del( delete) 删除,切片删除

    del lst[1:]
    print(lst)

    第四种:clear 清空

    lst.clear()
    print(lst)

    ③修改

    第一种:索引修改

    lst = ["太白", "五色", "银王", "日天"]
    lst[0] = "太黑"
    print(lst)
    lst[2] = "银角大王"
    print(lst)

    第二种:切片修改

    lst[1:3] = "马化腾"    # 迭代修改
    print(lst)
    lst[1:3] = ["周杰伦", "他媳妇", "王力宏媳妇"]
    print(lst)

     第三种:查询

    lst = ["舒克贝塔", "黑猫警长", "熊大熊二", "葫芦娃", "吴佩琪"]
    for el in lst:  #  element
        print(el)

    3,常用的操作方法

    1. len() 获取长度

    lst = ["王尼玛", "我记着你", "伟哥", "放学天台见","王尼玛", "王尼玛"]
    print(len(lst))
    print(lst.count("王尼玛"))

    2. count() 计算次数

    count = 1

    3. sort() 排序

    lst = [1, 9, 18, 2 , 34, 88, 7, 9]
    lst = ["2王尼玛", "马化腾", "1马云", "马云云", "阿里巴巴", "1王尼玛"]
    lst.sort()  # 升序
    lst.sort(reverse=True)  # 倒序
    print(lst)
    list

    4,列表list的嵌套

    降维操作

    lst = [1, "太白", "wusir", ["麻花疼", ["可口可乐"], "王剑林"]]
    
    print(lst[3][1][0])
    lst[3][1].append("芬达")
    print(lst)
    lst[2] = lst[2].capitalize()
    print(lst)
    
    lst[1] = lst[1].replace("", "")
    print(lst)

    5,tuple 元组

    基本结构:tuple = ("a","b","c")

    特点:不可变的列表. 只读列表. 有索引和切片.

       不可变的是它内部子元素. 如果子元素是列表. 列表中的元素是可以变的.

    lit = (1, "花生", "山药")
    print(type(lit))
    tu = (1, )    # 需要添加一个逗号
    print(type(tu))
    tu = ('DNF', "LOL", "CF", "斗地主", "消消乐")
    print(tu[2:])
    tu[2] = "王者荣耀"  # 尝试着修改 不能改, 会报错
    for el in tu:
        print(el)
    
    tu = (1, "马化腾", ["胡辣汤", "疙瘩汤", "西红柿鸡蛋汤"])
    tu[2].append("粘包米") # 元组本身没有变. 变的是儿子中的内容
    print(tu)
    
    tu = ("王昭君", "小泽老师", "夏川美里", "斯琴高娃", ("邱老师",("刀削面", "炒饼", "盖浇饭"), "刘德华", "周星星", "渣渣辉"))
    print(tu[4][1][2])

    6,for循环

    s = "刚才alex来看我了. 然后走了"
    for c in s:
       print(c)

    7,range()

    range()是python内置函数它能返回一系列连续增加的整数,它的工作方式类似于分片,可以生成一个列表对象。

    range函数大多数时常出现在for循环中,在for循环中可做为索引使用。其实它也可以出现在任何需要整数列表的环境中,

    在python 3.0中range函数是一个迭代器。range()函数内只有一个参数,则表示会产生从0开始计数的整数列表:

    数数
    有一个参数:结束为止
    两个参数: 1. 起始位置, 2.结束位置
    三个参数: 1. 起始位置, 2. 结束位置. 3.步长

    range()
    # for i in range(10): # 从0开始. 到10结束
        print(i)
    
    for i in range(3, 7):   # 从3 开始. 打印到7结束. 不能到7
       print(i)
    
    for i in range(3, 10, 2):  # 从3 到 10 每2个取一个
        print(i)
    
    for i in range(10, -10, -1):  #从10 开始到-10结束. 倒着数
        print(i)

    习题:求1-2+3-4...+99-100=?

    sum = 0
    for i in range(1, 101):
        if i % 2 == 0:
            sum = sum - i
        else:
            sum = sum + i
    print(sum)
    lst = [1, True, "哈哈", ("可口可乐", "百事可乐", "芬达")]
    lst[3] = "胡辣汤"
    lst.insert(2, "自行车")
    print(lst)

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    作业

    1,写代码,有如下列列表,按照要求实现每⼀一个功能
    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    1)计算列列表的⻓度并输出
    print(len(li))
    2)列列表中追加元素"seven",并输出添加后的列列表
    li.append("seven")
    print(li)
    3)请在列列表的第1个位置插⼊入元素"Tony",并输出添加后的列列表
    li.insert(1,'tony')
    print(li)
    4)请修改列列表第2个位置的元素为"Kelly",并输出修改后的列列表
    li[2] = 'Kelly'
    print(li)
    5)请将列列表l2=[1,"a",3,4,"heart"]的每⼀一个元素添加到列列表li中,⼀一⾏行行代码实
    现,不不允许循环添加
    l2 = [1,'a',3,4,'heart']
    li.extend(l2)
    print(li)
    6)请将字符串串s = "qwert"的每⼀一个元素添加到列列表li中,⼀一⾏行行代码实现,不不
    允许循环添加。
    s = 'qwert'
    li.extend(s)
    print(li)
    7)请删除列列表中的元素"eric",并输出添加后的列列表
    li.append("eric")
    print(li)
    8)请删除列列表中的第2个元素,并输出删除的元素和删除元素后的列列表
    e = li.pop(2)
    print(e)
    print(li)

    9)请删除列列表中的第2⾄至4个元素,并输出删除元素后的列列表

    del li[2,4]
    print(li)
    10)请将列列表所有得元素反转,并输出反转后的列列表
    li.reverse()
    print(li)
    11)请计算出"alex"元素在列列表li中出现的次数,并输出该次数。
    print(li.count('alex'))


    2,写代码,有如下列列表,利利⽤用切⽚片实现每⼀一个功能
    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    1)通过对li列列表的切⽚片形成新的列列表l1,l1 = [1,3,2]
    l1 = li[:3]
    print(l1)
    2)通过对li列列表的切⽚片形成新的列列表l2,l2 = ["a",4,"b"]
    l2 = li[3:6]
    print(l2)
    3)通过对li列列表的切⽚片形成新的列列表l3,l3 = ["1,2,4,5]
    l3 = li[0::2]
    print(l3)
    4)通过对li列列表的切⽚片形成新的列列表l4,l4 = [3,"a","b"]
    l4 = li[1:6:2]
    print(l4)
    5)通过对li列列表的切⽚片形成新的列列表l5,l5 = ["c"]
    l5 = li[-1]
    print(l5)
    6)通过对li列列表的切⽚片形成新的列列表l6,l6 = ["b","a",3]
    l6 = li[-3::-2]
    print(l6)



    3,写代码,有如下列列表,按照要求实现每⼀一个功能。
    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    1)将列列表lis中的"tt"变成⼤大写(⽤用两种⽅方式)。
    第一种:
    lis[3][2][1][0] = lis[3][2][1][0].upper()
    print(lis)
    第二种:
    lis [3][2][1][0] = "TT"
    print(lis)
    2)将列列表中的数字3变成字符串串"100"(⽤用两种⽅方式)。
    第一种
    lis [1] = "100"
    lis [3][2][1][1] = "100"
    第二种
    lis [1] = "100"
    lis [3][2][1][1] = str(lis [3][2][1][1] + 97)
    print(lis)
    3)将列列表中的字符串串"1"变成数字101(⽤用两种⽅方式)。
    lis [3][2][1][2] = int("101")
    print(lis)



    4,请⽤用代码实现:
    li = ["alex", "eric", "rain"]
    利⽤下划线将列列表的每一个元素拼接成字符串串"alex_eric_rain"
    count = 0
    l1 = ""
    while count <= len(li) - 1:
        l1 =l1 + (li[count])+"_"
        count += 1
    print(l1.strip("_"))
    5.利利⽤用for循环和range打印出下⾯面列列表的索引。
    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    for i in range(len(li)):
        print(li[i])
    6.利利⽤用for循环和range找出100以内所有的偶数并将这些偶数插⼊入到⼀一个新列列表
    中。
    l1 = []
    for i in range(1,101):
        if i % 2 == 0:
            l1.append(i)
    print(l1)

    7.利利⽤用for循环和range 找出50以内能被3整除的数,并将这些数插⼊入到⼀一个新列列表中。

    l1 = []
    for i in range(50):
       if i % 3 == 0:
            l1.append(i)
    print(l1)
    8.利利⽤用for循环和range从100~1,倒序打印。
    for i in range(100,0,-1):
       print(i)
    9.利利⽤用for循环和range从100~10,倒序将所有的偶数添加到⼀一个新列列表中,然
    后对列列表的元素进⾏行行筛选,将能被4整除的数留留下来。
    l1 = []
    for i in range(100,9,-1):
        if i % 2 == 0 and i % 4 == 0:
            l1.append(i)
    print(l1)
    10,利利⽤用for循环和range,将1-30的数字⼀一次添加到⼀一个列列表中,并循环这个
    列列表,将能被3整除的数改成*。
    l1 = []
    for i in range(1,31):
            l1.append(i)
            if int(i) % 3 == 0:
                l1[i-1] = "*"
    print(l1)
    11,查找列列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并
    以"c"结尾的所有元素,并添加到⼀一个新列列表中,最后循环打印这个新列列表。
    li = ["TaiBai ", “ale xC", “AbC ", "egon", " ri TiAn", "WuSir", " aqc"]
    l1 = []
    for i in range(len(li)):
        l2 = li[i].replace(" ","")
        if (l2.startswith("A") or l2.startswith("a")) and l2.endswith("c"):
            l1.append(l2)
    print(l1)
    12,开发敏敏感词语过滤程序,提示⽤用户输⼊入评论内容,如果⽤用户输⼊入的内容中
    包含特殊的字符:
    敏敏感词列列表 li = ["苍⽼老老师", "东京热", "武藤兰", "波多野结⾐衣"]
    则将⽤用户输⼊入的内容中的敏敏感词汇替换成等⻓长度的*(苍⽼老老师就替换***),并添
    加到⼀一个列列表中;如果⽤用户输⼊入的内容没有敏敏感词汇,则直接添加到上述的列列
    表中
    li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    l1 = []
    s = input("请输入评论内容")
    for i in li:
        if i in s:
            l = len(i)
            s = s.replace(i,"*"*l)
    l1.append(s)
    print(l1)
    13,有如下列列表
    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    循环打印列列表中的每个元素,遇到列列表则再循环打印出它⾥里里⾯面的元素。
    我想要的结果是:
    1
    3
    4
    "alex"
    3
    7,
    8
    "taibai"
    5
    ritian
    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    for i in li:
        if type(i) == list:
            for li in i:
                if type(li) == str:
                    print(li.lower())
                else:
                    print(li)
        elif type(i) == str:
                print(i.lower())
        else:
            print(i)
    14. 把班级学⽣生数学考试成绩录⼊入到⼀一个列列表中: 并求平均值. 要求: 录⼊入的时候
    要带着⼈人名录⼊入, 例例如: 张三_44
    lst = []
    while 1:
        s = input("请输入学生的姓名和成绩(姓名_成绩),输入Q退出:")
        if s.upper() == "Q":
            break
        lst.append(s)
    sum = 0
    for i in lst:
        a = i.split("_")
        sum += int(a[1])
    print(sum / len(lst))
    15. 敲七游戏. 从0开始数数. 遇到7或者7的倍数要在桌上敲⼀一下. 编程来完成敲
    
    
    l = []
    n = int(input("输入任意数:"))
    for i in range(1,n+1):
        if i % 7 == 0 or "7" in str(i) :
            l.append("")
        else:
            l.append(i)
    print(l)
    
    
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     


     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

     

     

  • 相关阅读:
    使用golang访问kubebernetes
    使用 Rancher 管理现有 Kubernetes 集群
    Running powershell scripts during nuget package installation and removal
    How to Create, Use, and Debug .NET application Crash Dumps in 2019
    寻找写代码感觉(一)之使用 Spring Boot 快速搭建项目
    Selenium+Java之解决org.openqa.selenium.InvalidArgumentException: invalid argument报错问题
    Selenium环境搭建
    关于Xpath定位方法知道这些基本够用
    Web自动化之浏览器启动
    【翻译】编写代码注释的最佳实践
  • 原文地址:https://www.cnblogs.com/songhuasheng/p/9409354.html
Copyright © 2011-2022 走看看