zoukankan      html  css  js  c++  java
  • python学习内容.04

    本节主要内容:
    1. 列表 2. 列表的增删改查 3. 列表的嵌套 4. 元组和元组嵌套 5. range
    一. 列表    1.1   列表的介绍        列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 比如JS中的数组, java中的数组等等. 它是以[ ]括起 来, 每个元素用' , '隔开而且可以存放各种数据类型:     lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "组"), "abc", {"我叫":"dict字典"},{"我叫集合","集合"}]         列表相比于字符串. 不仅可以存放不同的数据类型. 而且可以存放大量的数据. 32位python可以存放:  536870912个元素, 64位可以存放:  1152921504606846975个元素.而且列表是有序的(按照你保存的顺序),有索引, 可以切片方便取值.
        2.2  列表的索引和切片           列表和字符串一样也拥有索引: lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"] print(lst[0])   # 获取第一个元素 print(lst[1]) print(lst[2])
    lst[3] = "流动强"  # 注意. 列表是可以发生改变的. 这里和字符串不一样 print(lst)  # ['麻花藤', '王剑林', '马芸', '流动强', '向华强']
    s0 = "向华强" s0[1] = "美"  # TypeError: 'str' object does not support item assignment 不允许改变 print(s0)            列表的切片: lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"] print(lst[0:3])     # ['麻花藤', '王剑林', '马芸'] print(lst[:3])      # ['麻花藤', '王剑林', '马芸']
    print(lst[1::2])    # ['王剑林', '周鸿医'] 也有步长 print(lst[2::-1])   # ['马芸', '王剑林', '麻花藤'] 也可以倒着取
    print(lst[-1:-3:-2])    # 倒着带步长    二. 列表的增删改查
    1. 增, 注意, list和str是不一样的. lst可以发生改变. 所以直接就在原来的对象上进行了操作
    lst = ["麻花藤", "林俊杰", "周润发", "周芷若"]
    print(lst) lst.append("wusir") print(lst)
    lst = [] while True:    content = input("请输入你要录入的员工信息, 输入Q退出:")    if content.upper() == 'Q':        break    lst.append(content) print(lst)
    lst = ["麻花藤", "张德忠", "孔德福"] lst.insert(1, "刘德华")    # 在1的位置插入刘德华. 原来的元素向后移动一位 print(lst)
    # 迭代添加 lst = ["王志文", "张一山", "苦海无涯"] lst.extend(["麻花藤", "麻花不疼"]) print(lst)   
    2. 删除
        pop, remove, clear, del lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"] print(lst) deleted = lst.pop()         # 删除最后一个 print("被删除的", deleted) print(lst)
    el = lst.pop(2)     # 删除2号元素 print(el) print(lst)
    lst.remove("麻花藤")   # 删除指定元素 print(lst) # lst.remove("哈哈")    # 删除不存在的元素会报错 # # print(lst)
    lst.clear()     # 清空list print(lst)
    # 切片删除 del lst[1:3] print(lst)
    3. 修改
     
        索引切片修改 # 修改 lst = ["太白", "太黑", "五色", "银王", "日天"] lst[1] = "太污"   # 把1号元素修改成太污 print(lst)
    lst[1:4:3] = ["麻花藤", "哇靠"]     # 切片修改也OK. 如果步长不是1, 要注意. 元素的个数 print(lst)
    lst[1:4] = ["李嘉诚个龟儿子"]  # 如果切片没有步长或者步长是1. 则不用关心个数 print(lst)
    4. 查询, 列表是一个可迭代对象, 所以可以进行for循环
    for el in lst:    print(el)
    5. 其他操作
    lst = ["太白", "太黑", "五色", "银王", "日天", "太白"] c = lst.count("太白")     # 查询太白出现的次数 print(c)
    lst = [1, 11, 22, 2] lst.sort()          # 排序. 默认升序 print(lst) lst.sort(reverse=True)  # 降序 print(lst)
    lst = ["太白", "太黑", "五色", "银王", "日天", "太白"] print(lst) lst.reverse() print(lst)
    l = len(lst)    # 列表的长度 print(l)
    三. 列表的嵌套    采用降维操作.一层一层的看就好.
     
    lst = [1, "太白", "wusir", ["马虎疼", ["可口可乐"], "王剑林"]]
    # 找到wusir print(lst[2])
    # 找到太白和wusir print(lst[1:3])
    # 找到太白的白字 print(lst[1][1])
    # 将wusir拿到. 然后首字母大写. 再扔回去 s = lst[2] s = s.capitalize() lst[2] = s print(lst) # 简写 lst[2] = lst[2].capitalize() print(lst)
    # 把太白换成太黑 lst[1] = lst[1].replace("白", "黑") print(lst)
    # 把马虎疼换成马化疼
    lst[3][0] = lst[3][0].replace("虎", "化") print(lst[3][0])
    lst[3][1].append("雪碧") print(lst)
    四. 元组和元组嵌套    元组: 俗称不可变的列表.又被成为只读列表, 元组也是python的基本数据类型之一, 用小括号括起来, 里面可以放任何数据类型 的数据,  查询可以. 循环也可以. 切片也可以. 但就是不能改.
     tu = (1, "太白", "李白", "太黑", "怎么黑") print(tu)
    print(tu[0]) print(tu[2]) print(tu[2:5])  # 切片之后还是元组
    # for循环遍历元组 for el in tu:    print(el)
    # 尝试修改元组 # tu[1] = "马虎疼"   # 报错 'tuple' object does not support item assignment
    tu = (1, "哈哈", [], "呵呵") # tu[2] = ["fdsaf"]   # 这么改不行
    tu[2].append("麻花藤")     # 可以改了. 没报错 tu[2].append("王剑林") print(tu)    关于不可变, 注意: 这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可以变, 这取决于子元素是否是可变对 象.
         元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组
     tu = (1,) print(type(tu)) 元组也有count(), index(), len()等方法. 可以自己测试使用
    五. range    range可以帮我们获取到一组数据. 通过for循环能够获取到这些数据.
     for num in range(10):    print(num)
    for num in range(1, 10, 2):    print(num)
    for num in range(10, 1, -2):    # 反着来, 和切片一样    print(num)

    作业内容:

    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[1]="Kelly"
    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.remove("eric")
    print(li)
    8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
    s=li.pop(2)
    print(s)
    print(li)
    9)请删除列表中的第2至4个元素,并输出删除元素后的列表
    del li[2:4]
    print(li)
    10)请将列表所有得元素反转,并输出反转后的列表
    li.reverse()
    print(li)
    11)请计算出"alex"元素在列表li中出现的次数,并输出该次数。
    print(li.count("alex")) 1次
    2,写代码,有如下列表,利用切片实现每一个功能

    li = [1, 3, 2, "a", 4, "b", 5, "c"]
    1)通过对li列表的切片形成新的列表l1, l1 = [1, 3, 2]
    l1=li[0:3]
    print(l1)
    2)通过对li列表的切片形成新的列表l2, l2 = ["a", 4, "b"]
    l1=li[3:6]
    print(l1)
    3)通过对li列表的切片形成新的列表l3, l3 = ["1,2,4,5]
    l1=li[0::2]
    print(l1)
    4)通过对li列表的切片形成新的列表l4, l4 = [3, "a", "b"]
    l1=li[1:6:2]
    print(l1)
    5)通过对li列表的切片形成新的列表l5, l5 = ["c"]
    l1=li[7]
    print(list(l1))
    6)通过对li列表的切片形成新的列表l6, l6 = ["b", "a", 3]
    l1=li[5:0:-2]
    print(l1)
    3, 写代码,有如下列表,按照要求实现每一个功能。
    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    1)将列表lis中的"tt"变成大写(用两种方式)。
    01..lis[3][2][1][0]=lis[3][2][1][0].upper()
    print(lis)
    02.lis[3][2][1][0]=lis[3][2][1][0].swapcase()
    print(lis)

    2)将列表中的数字3变成字符串"100"(用两种方式)。
    01.lis[1]="100"
    lis[3][2][1][1]="100"
    print(lis)
    02.lis=str(lis).replace("3","'100'")
    print(lis)

    3)将列表中的字符串"1"变成数字101(用两种方式)。
    01:'''lis[3][2][1][2]=101
    print(lis)
    '''
    02:lis=str(lis).replace("'1'","101")
    print(lis)
    4, 请用代码实现:li = ["alex", "eric", "rain"]
    利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"
    li[0:3]=["alex_eric_rain"]
    print(li)
    5,利用for循环和range打印出下面列表的索引。li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    a=len(li)
    for li in range(0,a):
    print(li)
    6,利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。
    for s in range(2,100,2):
    a = list(range(2, 100, 2))
    print(a)
    7,利用for循环和range
    找出50以内能被3整除的数,并将这些数插入到一个新列表中。
    for s in range(3,50,3):
    a=list(range(3,50,3))
    print(a)
    8,利用for循环和range从100
    ~1,倒序打印。
    for s in range(100,1,-1):
    a=list(range(100,1,-1))
    a.reverse()
    print(a),
    for lis in range(100,10,-2):
    9,利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中然后对列表的元素进行筛选,将能被4整除的数留下来。
    a=list(range(100,10,-2))
    index=0
    while index<len(a):
    if a[index]%4==0:
    print(a[index])
    index=index+1
    else:
    index=index+1
    10,利用for循环和range,将1 - 30
    的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成 *。
    for lis in range(1,30):
    lis=list(range(1,30))
    index=0
    while index<len(lis):
    if lis[index]%3==0:
    print(lis[index])
    index=index+1
    else:
    index=index+1





    11,查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,
    最后循环打印这个新列表。li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
    b=[]
    for a in li:
    s=a.strip()
    if (s.startswith("A")or s.startswith("a"))and s.endswith("c"):
    b.append(s)
    for x in b:
    print(x)

    12,开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
    敏感词列表
    li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    则将用户输入的内容中的敏感词汇替换成等长度的 *(苍老师就替换 ** *),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。


    13,有如下列表
    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
    我想要的结果是:
    1
    3
    4
    "alex"
    3
    7,
    8
    "taibai"
    5
  • 相关阅读:
    问题-Delphi在多线程中使用其他窗体上的控件,报“尚未调用CoInitialize”解决方法
    问题-Delphi不能进行调试模式
    问题-Delphi为什么不能连接oracle
    问题-delphi无法编辑oracle表
    问题-[致命错误] Project1.dpr(1): Unit not found: 'System.pas' or binary equivalents (DCU,DPU)
    问题-Delphi编译时提示缺少delphi自己的单元文件
    教程-Delphi7 自带控件安装对应表
    问题-提示“adodataset.command”
    问题-提示“不正常地定义参数对象。提供了不一致或不完整的信息。”
    问题-[Delphi]提示Can't load package:dclite70.bpl解决方法
  • 原文地址:https://www.cnblogs.com/cz007/p/9221190.html
Copyright © 2011-2022 走看看