python之路---05 字典 集合

时间:2021-01-12 12:17:32

二十、字典

可变数据类型

{key:value}形式   查找效率高   key值必须是不可变的数据类型

  1.增删改查

1).增

       dic["新key"] = "新value"        追加新元素

dic.setdefault(新key,新value)    如果key存在  不添加

                      如果key不存在, 添加{新key:新value}

    2).删

       .pop("key")      关键字删除

      .popitem()   删除最后一项(早期时字典是无序的,就是随机删除一项)

      del dic["key"]   索引和切片删除

      dic.clear()      清空

    3).改

dic.["老key"] = "新value"

      dic.update(dic1)        更新   把dic1中的内容更新到dic中

    4).查

      ①  dic[key]        关键字查找   没有时报错

      ②  .get(key)       没有时返回  None

.get("key",没有这个)          没有时返回“没有这个”

      ③  .setdefault(key,value)

          key存在时, 把  老value  查出来

          key不存在时,添加  新的key和value,   并查出来

    5).其他操作

      .key()     获取所有的key值

      .value()    获取所有的value值

.items()     获取所有的  键值对

  2.dic的遍历    for循环

遍历字典两套方案
       dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
         ①. 使用for循环直接遍历字典的key
            for key in dic:
                print(key)
                print(dic[key])

②. 可以使用字典的items()+解构可以直接获取到key和value(解包)
            for k, v in dic.items():
                print(k)
                print(v)

二十一、集合 set()      {  }  表示

    本事是无序的、不重复的、可变的、 不可哈希的  。

    1.内部元素是不可变的 ,因此不可嵌套 。   是一种只含key的字典。

    2.  ① 没有索引和切片

      ②增

      .add("x")

      .update({"xx"})        添加元素  "xx"

.update("xx")           添加两个元素 "x" 

     ③删

      .pop()      随机删除一个

      .remove("x")   指定删除

     ④改   先删后加 

     ⑤查    for循环

     ⑥交集  s1 & s2

s1.intersection(s2)

     ⑦差集  s1 - s2

s1.differrence(s2)

     ⑧并集  s1 | s2

s1.union(s2)

     ⑨反交集  s1 ^ s2

s1.symmetric_difference(s2)

     ⑩ s = frozenset(set())      把集合变成 不可变 的