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

    字典:

    所谓字典:

    就是键值对数据 dict
    dic = {'键':'值'}

    用途:

    存储数据 字典的查找快一些

    python3.6 版本以上 字典默认是有序的, 怎么写的就怎么打印出来
    但是理论上字典是无序的 3.5以下版本 测试

    字典的键: 不可变数据类型 键不能重复,重复的话就会把值覆盖
    字典的值: 可以随意

    给大家补充一下:

    不可哈希:就是可变的数据 可变的数据不能哈希 

    可哈希:不可变数据

    字典的增:

    第一种:

    1 dic[11] = '小米'
    2 print(dic)

    第二种:

    1 dic.setdefault(11,'乔狗')

    注释:

    1.先去字典中通过11这个键去查有没有值 就是None
    2.如果有值 就不进行添加
    3.如果是None, 就添加 返回的是添加的值

    字典的删:

    del dic                        # 删除整个字典

    dic.clear()             # 清空

    del dic[1]                 # 通过键删除

    print(dic.pop('25'))          # pop 通过指定键删除 pop有返回值, 返回的是被删除的值

    dic.popitem()             # 随机删除        python3.6 删除最后一个        3.5 中随机删除

    字典的改:

    1 dic1 = {'33':'jj','44':'TT'}
    2 dic2 = {'33':'gg','66':'pp'}
    3 dic1.update(dic2)
    4 dic2.update(dic1)
    5 print(dic2)

    更新 被更新的内容如果存在 要更新的内容中原值就会被覆盖
    两个字典中,都没有一样的就是合并两个字典

    1 dic2['33'] = 'tsp'
    2 print(dic2)

    字典中没有的时候才增,如果字典中这个键存在就做修改

    字典的查:

    1 dic2 = {'33':'gg','66':'pp'}

    print(dic2[2])          # 通过键查找 如果键不存在就报错

    print(dic2.get(2))         # 通过键查找 如果键不存在不会报错,返回None

    print(dic2.setdefault('33'))     # 不存在返回None

    for i in dic2:
     print(i)

     for i in dic2:

     print(dic2.get(i))

     for i in dic2.keys():
     print(i)

     for i in dic2.values():
     print(i)

     for i in dic2.items():
     print(i)

     for i in dic2:
     print(i,dic2[i])

    解构:

    分别定义变量值

    1 a,b,c = 1,2,3    
    2 print(a)
    3 print(b)
    4 print(c)

    两个数交换

    1 a = 10
    2 b = 20
    3 a,b = b,a      
    4 print(b)  # 10
    5 print(a)  # 20

    取字典中的键值

    1 for k,v in dic2.items():   # k,v =  ('33','gg')
    2     print(k)
    3     print(v)

    keys()         # 获取所有的键 高仿列表

    values()        # 获取所有的值 高仿列表

    item()         # 获取键值 以元祖的形式显示

    补充一下:

    ret = dic2.get('乔狗','对不起,没有乔狗这条狗')

    ret = dic2.pop('乔狗',‘不好意思,乔狗挂了')

    这里解释一下,括号内的第一个值是所查找的值,第二个是返回的内容,没有添加的话,正常报错,添加后,显示所添加的内容

    dic3 = dict.fromkeys([1,2,3,4,5,6,7,8,9,0],[1,2,3])

    第一个参数是键 要是可迭代的对象

    第二个参数是值, 值是无所谓 是因为创建的新字典的值用的都是一个 值是一个可变数据类型

    字典的嵌套:

    1 dic={'1':'乔狗','2':{'3':'乔二哈'}}

    集合:

    set 集合

    用来存储数据

    天然去重 无序 所以不能是用下标

    1 lst = [1,2,3,4,12,3,4]
    2 print(list(set(lst)))

    拓展:

    print(s1 & s2)      # 俩个都有的
    print(s1 | s2)       # 两个合并
    print(s1 - s2)       # 不显示共有的
    print(s1 ^ s2)      # 显示不共有的

    print(s1 < s2)
    print(s1 > s2)

    冻结集合:

    s1 = frozenset(['乔狗', '乔二狗', '乔二哈', '乔二拆'])
    print(s1)

    冻结集合可以把可变类型变成不可变类型

  • 相关阅读:
    第51天 [js] 字符串相连有哪些方式?哪种最好?为什么?
    第52天 [js] 什么是事件委托?它有什么好处?能简单的写一个例子吗?
    np.ndarray与Eigen::Matrix之间的互相转换
    C++向assert加入错误信息
    CeiT:训练更快的多层特征抽取ViT
    CoAtNet: 90.88% Paperwithcode榜单第一,层层深入考虑模型设计
    正式启用Danube 官方站点
    go 编译报错 package embed is not in GOROOT (/usr/local/go/src/embed)
    cloudreve兼容acme.sh脚本
    Git的交叉编译
  • 原文地址:https://www.cnblogs.com/53Dawns/p/10217204.html
Copyright © 2011-2022 走看看