zoukankan      html  css  js  c++  java
  • day05

    字典

    键值对数据 dict dict = {'键':'值'}

    存储数据 字典的查找快一些(消耗的内存大)

    不可哈希的,就是可变的数据

    可变的数据不能哈希 不可变的数据能哈希

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

    字典的值 :可以随意

    查 :

    print(dic['25'])             #通过键去查找值
    

    增:

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

    删:

    del dic          #删除整个字典
    del dic[键]		#通过键删除
    dic.pop('键')	#pop通过指定键删除   pop也有返回值   返回的被删除的值
    dic.clear()		 #清空
    dic.popitem()	 #随机删除    python3.6删除最后一个    python3.5中随机删除
    

    改:

    dic.update(字典)更新   被更新的内容如果在要更新的内容中那值就回覆盖
    两个字典,都没一样的是合并
    
    dic2['33'] = 'tsp'是字典中没有的时候才叫增,如果字典中这个键存在就叫做修改
    

    查:

    print(dic2['33'])		#通过键查找 如果键不存在 就报错
    print(dic2.get(2))		#通过键查找 如果不存在不会报错返回None
    print(dic.setdefault('33'))	#不存在返回None
    

    其他操作:

    dic2 = {'33':'gg','66':'pp'}
    for i in dic2:
        print(i)
    for i in dic2:
    print(dic2.get(i))
    print(dic2.keys())高仿列表dic_key(['33','66'])不能使用下标
    print(dic2.vaules())高仿列表dic_value(['gg','pp'])不能使用下标
    for i in dic2.values():
        print(i)
    for i in dic2.items():
        print(i)
    for k,v in dic.items():
        print(k)
        print(v)
    

    解构:

    a,b,c = 1,2,3			'456'   [7,8,9]  (7,8,9)   {'1':8,'2':9,'3':0} 
    
    # 面试题        用一行交换a,b的值
    a = 10 
    b = 20 
    a,b = b,a
    print(a,b)
    
    keys()		#获取所有的键  高仿列表 
    values()	#获取所有的值 高仿列表
    item()		#获取键值 以元组的形式显示
    

    补充:

    dic2 = {'33':'gg','66':'pp'}
    ret = dic2.get('qq',你傻啊,没有还要拿)
    ret = dic2.pop('qq','没有')
    
    这是坑:
    dic3 =dict.fromkeys([1,2,3,4,5,6],[1,2,3])
    print(dic3)
    第一个参数是键  要是可迭代的对象
    第二个参数是值,值是无所谓是因为创建的新字典的值用的都是一个值是一个可变数据类型
    

    字典的嵌套:

    dic1 = dic['陈冠希']['阿娇']
    

    集合:

    set  集合  存储数据   天然去重   无序不能使用索引
    se = {1,2,3,45,234,12,32,12}
    列表有点 没有值的字典
    面试题
    lst = [1,2,3,4,12,3,4]去重
    print(list(set(lst)))
    se.add(6)
    se.update('123')   可迭代的对象
    se.clear
    se.pop
    se.remove(4)       通过内容删除
    
    s1 = {'刘能','赵四','皮革厂'}
    s2 = {'刘科长','冯乡长','皮革厂'}
    s1 & s2    交集
    s1 | s2    并集
    s1 - s2    差集				不显示共有的
    s1 ^ s2    反差集			    显示不共有的
    
    s1 = frozenset(['','','',''])
    print(s1)
    
  • 相关阅读:
    原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
    FMX有一套自己的消息处理机制。类似这样:
    如何在 EXCEL 2003 插入的方框内打对勾,复选框
    微信朋友圈视频链接中的视频怎么下载到电脑?
    ie 8在打印网页的时候打印预览是空白的
    如何访问局域网的Access数据库?
    centos 7下载
    在评估一个性能测试工具的时候 我们一般要考虑哪些方向 ?
    外国人专门写了一篇文章,来分析为什么go在中国如此火
    python 编程测试练习答案
  • 原文地址:https://www.cnblogs.com/qwe911/p/11180597.html
Copyright © 2011-2022 走看看