zoukankan      html  css  js  c++  java
  • Python之路(四)--->list、元组、字典

      好久没有更新了,感觉自己写的东西并没有太多人看,可能是因为写的不好,也可能是太基础了。学习是一个漫长的过程,结果结果固然重要,但是更重要的是在学习的过程中所学到方法,这些方法在以后的生活还是工作中都能给予你很大的帮助。同时,学习也是一个试错的过程,我们不谈天资,没有一个人生下来就知道很多知识,后期的努力是非常重要的。

      接下来我要记录下最近学的list、元组、字典相关的知识点,望各位大神给予指导!

    ------------------------------------------------------------(分隔线)--------------------------------------------------------------

      序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,以此类推。在Python中有6个序列的内置类型,但最常见的是list和元组,序列都快进行索引、切片、加、乘、检查成员等操作。

    一、列表  --> list

      创建一个列表即list,只要把逗号分隔的不同的数据项用方括号括起来即可。list支持删除、添加、修改list中的元素。例:

    li = ["a","b",1,2,3,"tom","root"]

      列表中的元素可以是数字、字符、字符串。同时,列表还支持列表嵌套。

        1. 索引

    li = ["alex", 1, 2, 'K']
    print(li[2])
    
    #执行结果:2

        2.切片

    li = ["alex", 1, 2, 'K']
    print(li[0:2])
    
    #执行结果:['alex', 1]

        3. append()  -->  在原列表的最后追加新元素,例:

    li = ["alex", 1, 2, 'K']
    li.append("asajkakg")
    print(li)
    
    #执行结果:['alex', 1, 2, 'K', 'asajkakg']

        4.  copy()  -->  浅拷贝,例:

    li = ["alex", 1, 2, 'K']
    v = li.copy()
    print(v)
    
    #执行结果:['alex', 1, 2, 'K']

        5.  clear()  -->  清空列表中的所有元素,例:

    li = ["alex", 1, 2, 'K']
    li.clear()
    print(li)
    
    #执行结果:[]

        6.  count()  -->  计算元素出现的次数,例:

    li = ["alex", 1, 2, 'K',2]
    v = li.count(2)
    print(v)
    
    #执行结果:2

        7.   extend  -->  拓展列表中的元素,这里和append()有一定的区别,append()是将要拓展的所有元素当做一个大的元素拓展进去,而extend()则是将每个元素拓展进去,例:

    li = ["alex", 1, 2, 'K',2]
    li.append([9988,"kkk"])
    print(li)
    
    #执行结果:['alex', 1, 2, 'K', 2, [9988, 'kkk']]
    
    li = ["alex", 1, 2, 'K',2]
    li.extend([9988,"kkk"])
    print(li)
    
    #执行结果:['alex', 1, 2, 'K', 2, 9988, 'kkk']

        8.  index()  -->  获取值在列表中的位置,当列表中有多个相同元素时,返回第一个值的位置,例:

    li = ["alex", 1, 2, 'K',2]
    v = li.index(2)
    print(v)
    
    #执行结果:2

        9.  insert()  -->  在指定位置插入指定元素,例:

    li = ["alex", 1, 2, 'K',2]
    li.insert(3,"tom")
    print(li)
    
    #执行结果:['alex', 1, 2, 'tom', 'K', 2]

        10.  pop()  -->  删除指定位置的元素,若不指定位置,默认删除最后一个元素,例:

    #指定位置时
    li = ["alex", 1, 2, 'K',2]
    li.pop(3)
    print(li)
    
    #执行结果:['alex', 1, 2, 2]
    
    #不指定位置时
    li = ["alex", 1, 2, 'K',2]
    li.pop()
    print(li)
    
    #执行结果:['alex', 1, 2, 'K']

        11.  remove()  -->  删除列表中指定的值,优先删除第一个扫描到的值,例:

    li = ["alex", 1, 2, 'K',2]
    li.remove(2)
    print(li)
    
    #执行结果:['alex', 1, 'K', 2]

        12.  reverse()  -->  将列表中的元素进行反转,例:

    li = ["alex", 1, 2, 'K',2]
    li.reverse()
    print(li)
    
    #执行结果:[2, 'K', 2, 1, 'alex']

        13.  sort()  -->  将列表中的元素按顺序排列,例:

    li = [1, 2, 5, 2, 10]
    li.sort()
    print(li)
    
    #执行结果:[1, 2, 2, 5, 10]

      介绍另外修改元素、删除元素以及列表字符串相互转换的方法。

         删除,可以用del 加上列表的索引,例:

    li = [1, 2, 5, 2, 10]
    del li[0]
    print(li)
    
    #执行结果:[2, 5, 2, 10]

        修改,例:

    li = [1, 2, 5, 2, 10]
    li[0] = "hjak"
    print(li)
    
    #执行结果:['hjak', 2, 5, 2, 10]

        列表转换为字符串,例:

    li = [1, 2, 5, 2, 10, "asd", "jim"]
    s = ""
    for i in li:
        s= s + str(i)
    print(s)
    
    #执行结果:125210asdjim

        字符串转换为列表,例:

    s = "asdadadas"
    li = list(s)
    print(li)
    
    #执行结果:['a', 's', 'd', 'a', 'd', 'a', 'd', 'a', 's']

    ------------------------------------------------------------(分隔线)--------------------------------------------------------------

      二、元组  -->  tuple

        与列表类似,但元组中的元素创建后不可修改、也不能增加或者被删除。注意:一般在写元组时,最后建议加上逗号。这样做的目的是为了区分开函数的参数和元组。例:

    tu = (111, "tom",33,  )

        元组同样支持索引、切片以及列表转换为元组例:

    tu = (111, "tom", 33, )
    v1 = tu[0]
    v2 = tu[0:3]
    print(v1,v2)
    
    #执行结果:111 (111, 'tom', 33)

    ------------------------------------------------------------(分隔线)--------------------------------------------------------------

      三、字典  -->  dict

        字典可以存储任意类型对象,字典的每个键值对用冒号分割,每对之间用逗号隔开,整个字典都包含在{}中,例:

    d = {
      "k1": 1,
      "k2": 2
    }

        值得注意的是:键必须是唯一的,但是值则不需要;值可以是任何数据类型,但键必须是不变得。

          1.fromkeys() -->  根据序列,创建字典,并指定统一的值,例:

    v = dict.fromkeys(["k1", 22, "999"],520)
    print(v)
    
    #执行结果:{'999': 520, 22: 520, 'k1': 520}

          2.pop()和popitem()  -->  删除键值并获取其值,例:

    dic = {
        "k1":"v1",
        "k2":"jj"
    }
    
    v1 = dic.pop("k1", 90)
    print(dic, v1, )
    
    #执行结果:{'k2': 'jj'} v1
    
    
    v2 = dic.popitem()
    print(dic, v2, )
    
    #执行结果:{'k1': 'v1'} ('k2', 'jj')

          3.设置键值,若键值已经存在,则不设置并获取当前键所对应的值;若未设置,则设置键值并获取当前键所对应的值,例:

    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    
    v1 = dic.setdefault('k1', '123')
    print(dic, v1)
    
    #执行结果:{'k2': 'v2', 'k1': 'v1'} v1
    
    v2 = dic.setdefault('k12',"asd")
    print(dic, v2)
    
    #执行结果:{'k2': 'v2', 'k12': 'asd', 'k1': 'v1'} asd

          4. update()  -->  更新字典键值,例:

    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    
    dic.update({'k1': '111111','k3': 123})
    print(dic)
    
    #执行结果:{'k3': 123, 'k2': 'v2', 'k1': '111111'}

    字典是无序的,同样可以进行索引,切片等操作。

    ------------------------------------------------------------(分隔线)--------------------------------------------------------------

    正所谓:“不犯错就永远不会进步。”

  • 相关阅读:
    LeetCode | Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode | Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode | Binary Tree Zigzag Level Order Traversal
    PLI与Pillow
    CentOS下安装setuptools、pip和virtualenv
    CentOS下更新python版本
    CentOS中输入yum报错:sudo: unable to execute /bin/yum: No such file or directory
    Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.
    CentOS安装git
    CentOS中yum安装软件时报错:No package XXX available
  • 原文地址:https://www.cnblogs.com/liuzhaoling/p/9767902.html
Copyright © 2011-2022 走看看