• Python数据基本类型3


    -*- coding:utf-8 -*-
    字典 键值对数据 dict dic = {'键':'值'}
    存储数据 字典的查找快一些
    不可哈希的,就是可变的数据 可变的数据不能哈希 不可变的数据能哈希

    python3.6 版本以上 字典默认是有序的, 咱们怎么写的就怎么打印出来
    但是 出去和别人说的时候,字典是无序的 3.5 测试


    字典的键: 不可变数据类型 键不能重复,重复的话就会把值覆盖
    字典的值: 可以随意
    dic = {1:['邓','新','龙'],
    2:'靖哥哥',
    14:'张翔宁',
    True:'我兜里',
    (1,2):'草山',
    '25':'黄蓉',
    '你好':'试试'
    }
    print(dic['25']) # 通过键去查找值
    print(dic[2]) # 通过键去查找值

    增:

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

    dic.setdefault(11,'华为') # 17 键 华为 值
    1.先去字典中通过11这个键去查有没有值 就是None
    2.如果是值 就不进行添加
    3.如果是None, 就添加 返回的是添加的值

    print(dic)
    print(dic.setdefault(17))

    删:

    del dic # 删除整个字典

    del dic[1] # 通过键删除
    print(dic)

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

    dic.clear() # 清空
    print(dic)

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

    改:
    dic1 = {'33':'jj','44':'TT'}
    dic2 = {'33':'gg','66':'pp'}
    dic1.update(dic2)

    dic2.update(dic1)
    更新 被更新的内容如果在 要更新的内容中那值就会被覆盖
    两个字典中,都没有一样的就是合并
    print(dic2)


    dic1 = {'33':'jj','44':'TT'}
    dic2 = {'33':'gg','66':'pp'}

    dic2['33'] = 'tsp' #是字典中没有的时候才叫增,如果字典中这个键存在就叫做修改
    print(dic2)

    查:

    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])


    print(dic2.keys()) # 高仿列表 dict_keys(['33', '66']) 不能使用下标
    print(dic2.values()) # 高仿列表 dict_values(['gg', 'pp']) 不能使用下标


    解构

    a,b,c = 1,2,3 # 1,2,3 True,False,True '456' [7,8,9] (7,8,9) {'1':8,'2':9,'3':0}
    print(a)
    print(b)
    print(c)

    面试题:

    a = 10
    b = 20
    a,b = b,a # 10000%
    print(b) # 10
    print(a) # 20


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

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

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

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

    补充:
    dic2 = {'33':'gg','66':'pp'}
    # ret = dic2.get('99','你傻啊,没有还要拿')
    ret = dic2.pop('99','没有')
    print(ret)


    ###############################这是坑##############################################
    # dic3 = dict.fromkeys([1,2,3,4,5,6,7,8,9,0],[1,2,3])
    # #第一个参数是键 要是可迭代的对象
    # #第二个参数是值, 值是无所谓 是因为创建的新字典的值用的都是一个 值是一个可变数据类型
    # print(dic3)
    # dic3[3].append(9)
    # print(dic3)

    ##################################################################################


    字典的嵌套:

    #dic = {'汪峰':{'光头强':'电锯',
    '葛慧倩':'熊大',
    '国际章':'熊二'},
    '陈冠希':{'张柏芝':'喜剧之王',
    '阿娇':'千机变'},
    '韦小宝':{'建宁':'公主',
    '龙儿':'教主夫人',
    '双儿':{'大双':'榴莲','小双':'椰子'},
    '阿珂':'刺客'}}
    dic1 = dic['陈冠希']['阿娇']
    print(dic1)
    print(dic['韦小宝']['双儿'])
    print(dic['韦小宝']['双儿']['小双'])


    集合:

    set 集合 存储数据 天然去重 无序 不能是用下标

    se = {1,2,3,4,52,234,12,21,12,123,1,11,2,3,1,2,3,21} # 列表有点 没有值得字典
    print(se)

    面试题

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

    for i in {1,2,3,4}:
    # print(i)

    se.add(6)

    print(se)

    se.update([1,23,34]) # 可迭代对象
    print(se)


    se.clear()
    se = {1,2,3,4}
    print(se.pop())

    se.remove(4) # 通过内容删除
    print(se)

    s1 = {"刘能", "赵四", "皮歌藏"}
    s2 = {"刘科长", "冯乡长", "皮歌藏"}

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

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

    dic = {{1,2}:'你好'}
    print(dic)

    s1 = frozenset(['冯乡长', '刘能', '赵四', '刘科长'])
    print(s1)

    dic = {s1:'你好'}
    print(dic)


    print(dic.fromkeys('1','nihao'))


    dic = {}
    # dic.setdefault('123','nihao')
    print(dic)

  • 相关阅读:
    论文解读(GMAE)《Graph Masked Autoencoders with Transformers》 Learner
    大数据面试题V3.0 Spark面试题(约9.8w字)
    大数据面试题V3.0 Hive面试题(约3.3w字)
    大数据面试题V3.0 HDFS部分
    大数据面试题V3.0 Zookeeper面试题
    大数据面试题V3.0 MapReduce部分
    大数据面试题V3.0 数仓面试题(约3.6w字)
    大数据面试题V3.0 Flink面试题
    大数据面试题V3.0 Flume面试题
    大数据面试题V3.0 数据库面试题
  • 原文地址:https://www.cnblogs.com/YZL2333/p/10216206.html
Copyright © 2020-2023  润新知