zoukankan      html  css  js  c++  java
  • 复习字典、集合

    (一)字典(无序,可以修改,键不可以重复,值可以重复)

      每对键值组合称为项,字典跟序列不同,序列讲究顺序,字典讲究映射,不讲顺序。

      注意:字典的键必须是独一无二,而值可以多种数据类型,但是键取自不可改变的数据类型(如字符串、数值型或元组)。键值唯一,值不唯一。

    1.字典的创建(至少五中方法)

      a = dict(one=1,two=2,three=3,four="肆")

      b = {"one":1,"two":"贰","three":3,"four":4}

      c = dict(zip(["one","two","three","four","five"],["壹","贰","叁","肆","伍"]))

      d = dict([("two",2),("one",1),("three",3),("four,4")]) 或d = dict((("two",2),("one",1),("three",3),("four,4")))

      e = dict({"three":3,"two":"贰","one":1})

      g = dict.fromkeys(seq[,val])  创建一个新字典,以序列seq中元素,做字典,val做值

    2.字典的访问

      创建一个空子典  dict1 = {} 

      dict2 = dict.fromkeys(range(32),"赞")

      print(dict2.keys())  #输出所有键组成的列表

      print(dict2.values())  #输出所有组成的列表

      print(dict2.items())  #输出所有的键值对组成的列表

    3.获取内容

      dict3 = {}

      dict4 = dict3.fromkeys(range(5),"赞")

      print(dict4.get(4))  #输出0~4都是赞,而其他值都是None

      print(dict4.get(10),"木有")  #给不存在的键赋值默认值

    4.清空字典clear()删除字典内所有元素

      dict5 = {"name":"张三","sex":"男","age":18}

      print(dict5.clear())

    5.删除字典

      dict6 = {"name":"李丽","sex":"女","age":18}

      del dict6

      dict6.pop(name)  #通过指定键来键对应的值,同时显示删除键所对应的值

      dict6.popitem()  #随机删除一项键值对

    6.拷贝字典,返回一个字典的浅复制

      dict6 = {"name":"李丽","sex":"女","age":18}

      dict7 = dict6.copy()

      print(dict7)

    7.更新字典

      dict8 = {"米奇":"老鼠","汤姆":"猫","小白":"猪"}

      dict8.update(小白="狗")

      注意:当一个字典中有重复的键所对应的值时,后面的健值对会替换掉前面的健值对

    8.统计字典的长度

      dict8 = {"米奇":"老鼠","汤姆":"猫","小白":"猪"}

      len(dict8)

      str(dict8)  以字符串形式输出字典

      print("value:",dict8.__contains__("米奇"))  判断键是否在字典内,如果在返回True,不在返回False

    9.遍历嵌套字典

    def dict9_list(d,l):

      for x in d.keys():

        if type(d[x]) == dict:

          dict9_list(di[x],l)

        else:

          l.append(d[x])

    d = {1:"a",2:"b",3:{4:"c",5:"d",6:{7:"e"}},8:"f"}

    l = []

    dict9_list(d,l)

    print(l)

    (二)集合,你是我的唯一,我的心中只有你(无序,不可以修改,不可以重复)(可以用作去重元素)

    1.集合创建

      set1 ={1,2,3,4,5,6}

      set2 = set([1,2,3,4,5,6])

      set1 == set2

    2.访问集合

      set3 = {1,2,3,4,5,6,3,7,8,9,9}

      for each in set3:

        print(each,end=" ")

      可以使用 in和not in 来判断一个元素是否在集合中已经存在

      >>>2  in set3  #True    >>>2 not in set3  #False  

      使用add()方法可以给集合添加元素,使用remove()方法删除集合中已知的元素

      >>>set3.add(11)

      >>>set3

       {1,2,3,4,5,6,7,8,9,11}

      >>>set3.remove(5)

      >>>set3

      {1, 2, 3, 4, 6, 7, 8, 9}

    3.不可变集合(冰冻集合frozenset())

      >>>set4 = frozenset({1,2,3,4,5})

      >>>set4.add(6)

      报错:因为冰冻集合没有add属性

  • 相关阅读:
    LeetCode 1245. Tree Diameter
    LeetCode 1152. Analyze User Website Visit Pattern
    LeetCode 1223. Dice Roll Simulation
    LeetCode 912. Sort an Array
    LeetCode 993. Cousins in Binary Tree
    LeetCode 1047. Remove All Adjacent Duplicates In String
    LeetCode 390. Elimination Game
    LeetCode 1209. Remove All Adjacent Duplicates in String II
    LeetCode 797. All Paths From Source to Target
    LeetCode 1029. Two City Scheduling
  • 原文地址:https://www.cnblogs.com/xiaofei-bai/p/8715727.html
Copyright © 2011-2022 走看看