• Python_004(列表和元组)


    一.列表

    1. 列表:

    列表的创建:li = [],列表中可以放置字符串,元组,列表,字典,列表等各种数据类型,32位的Python可以存放2^32个数据

    2. 列表的索引和切片

    列表的索引:格式lst = [元素,元素....元素]  print(lst[index])index是对应列表中元素的下标,切记index从0开始;

    代码展示:

     1 lst = ["周杰伦", "王力宏", "周润发","成龙","李连杰"]
     2 lst[1] = "周星驰"
     3 print(lst)
     4 #输出 ["周杰伦", "周星驰", "周润发","成龙","李连杰"]
     5 
     6 #这里赋值的变量可以为其他类型变量,列表,元组,字典都可以
     7 lst = ["周杰伦", "王力宏", "周润发","成龙","李连杰"]
     8 lst[1] = 1
     9 print(lst)
    10 #输出 ["周杰伦", 1, "周润发","成龙","李连杰"]
    list列表赋值

    列表的切片:和字符串一样,格式为[起始位置:结束位置:步长默认为1时]

    代码展示:

    1 lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
    2 lst[1:3] = "马化腾"  # 迭代修改(深坑请留意)
    3 print(lst)
    4 #输出结果:['马化腾', '马', '化', '腾', '五色', '银王', '日天']
    5 
    6 lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
    7 lst[1:3] = ["马化腾"]  # 这里马化腾才会整体添加到列表中
    8 print(lst)
    9 #输出结果:['马化腾', '马化腾', '五色', '银王', '日天']
    列表切片修改

    列表的切片:[]步长不为1时

    代码展示:

     1 lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
     2 lst[::2] = ["周杰伦", "他媳妇"]  # 这里是两个元素
     3 print(lst)
     4 #输出结果:
     5  lst[::2] = ["周杰伦", "他媳妇"]  # 迭代修改
     6 ValueError: attempt to assign sequence of size 2 to extended slice of size 3
     7 报错:因为你步长截取了三个元素,而你替换的只有两个元素,所以会报错!
     8 
     9 
    10 lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
    11 lst[::2] = ["周杰伦", "他媳妇", "王力宏媳妇"]  # 这里是三个元素
    12 print(lst)
    13 #输出结果:['周杰伦', '王江林', '他媳妇', '五色', '王力宏媳妇', '日天']
    14 所以不管你替换的什么,替换的元素个数跟步长截取的个数一致!
    15 例如:lst[::2] = 112,222,333
    16         st[::2] = "sdt"
    17         st[::2] = "fkd","fd","d"
    18         st[::2] = 1,2,3
    19         st[::2] = None.None,None
    步长不为1修改列表

    3. 列表的其他操作

    lst.sort()排序,默认时候升序,一般对数字好使,lst.sort(reverse = True)降序

    lst.reverse()将列表翻转.

    c = len(lst)列表的长度

    4.列表的增删改查

    增:

    和字符串不一样,lst是可以发生改变的,所以直接在原来的对象上进行了操作

    lst.append("元素")注意这里是自动添加到最后一位的;

    lst.insert(index."元素")index的位置添加元素,原来的元素向后移动一位;

    lst.extend(元素)这里面元素可以是列表,元组,字典等,不能为数字,注意是迭代添加在末尾

    删:

    索引删除:list.pop(index)默认删除最后一个,这个是有返回值的,deleted = list.pop() deleted为被删除的元素

    index为删除索引,你想要删除第几位,list.pop(index - 1)

    指定元素删除:list.remove(指定元素)删除指定元素,没有返回值,不用赋值,如果删除不存在的元素会报错!

    切片删除:del lst[起始位置:结束位置:步长]步长默认为1,范围删除,若步长不为1,参考上述讲解!

    改:

    直接索引赋值修改,切片修改见上述2

    查:

    for c in lst: print(c) 这里相当于循环一次,列表中索引下标增加1找出元素赋值给c;

    5.列表的嵌套

    若列表中有嵌套列表:可以采用降维操作找到元素,

    若元素为字符串,可以直接应用字符串的操作:

    代码展示:

     1 lst = [1, "太白", "wusir", ["麻花疼", ["可口可乐"], "王剑林"]]
     2 lst[2] = lst[2].capitalize()
     3 print(lst)
     4 #输出结果:[1, '太白', 'Wusir', ['麻花疼', ['可口可乐'], '王剑林']]
     5 
     6 print(lst[3][1][0])
     7 lst[3][1].append("芬达")
     8 print(lst)
     9 #输出结果:可口可乐
    10 [1, '太白', 'Wusir', ['麻花疼', ['可口可乐', '芬达'], '王剑林']]
    列表嵌套

    元组:

    跟列表相似,但是元组是只读文件,不可变,而子元素内部的子元素是可以变的,这取决于子元素是否是可变对象!

    注意:这里有一个坑:如果你定义一个元组为:tul = (108)或者tul = ("string")前者是整形后者为字符串类型,

    所以你定义的元组里的元素少于两个的话,就不是元组,只不过加了个扩号而已,定义格式为:tul = (108,)或者tul = ("string",);空元组格式为:tu = tuple();

    6.range的应用

    range可以帮我们获取一些数据,通过for循环能够获取这些数据

    for sum in range(10): print(sum)默认是从0开始的,在这里表示从0到10,10取不到,跟切片索引是一样的,也有步长!

  • 相关阅读:
    iOS之内存管理(ARC)
    分布式锁1 Java常用技术方案
    谈谈如何使用Netty开发实现高性能的RPC服务器
    前后端分离开发模式下后端质量的保证 —— 单元测试
    jquery实现"跳到底部","回到顶部"效果
    html内容超出了div的宽度如何换行让内容自动换行
    采用easyui+ajax+htm+ashx编写 通过用户对应角色 角色对应菜单 控制用户的访问权限
    javascript [] 与 {} 的区别
    图说设计模式
    T4教程1 T4模版引擎之基础入门
  • 原文地址:https://www.cnblogs.com/0627zhou/p/9275045.html
Copyright © 2020-2023  润新知