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

    字典 

    字典没有索引和切片,但是字典可嵌套

    字典可以直接强转为字符出类型

    for  k,v in dic.items()  #获取到字典中的所有键值对,解构给前面俩变量
        print(k,v)
    
    for i in dic.values():
             print(i)     #获取到字典中的每一个值
    
    for i in dic:
             print(i)     #获取到字典中的每一个键
    
    for i in dic.keys():
             print(i)      #获取到字典中的每一个键
    dic = {1:"今天",2:"你",3:"好美"}
    dic = str(dic)
    print(dic)
    print(type(dic))#这样改过之后,你就能把字典写进文件里

    循环字典的过程中进行添加键值对,会报错

    增:

    1.新key表示添加

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    dic["日本"] = "东京审判" 
    dic["韩国"] = "釜山行"

    2.setdefault(key,value)   指定键、值添加

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    dic.setdefault("hello","我爱你中国")        #key不重复,添加成功,返回value    
    print(dic.setdefault("意大利","真棒"))   #由于字典里这个有同样的key,返回值就是字典里的key现有value

    删:

    1.pop(键)     指定元素删除

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    dic.pop("美国")
    print(dic)
    输出结果:{'意大利': '李云龙'}

    2.popitem()     随机删除

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    dic.popitem()

    3.del dic[key]

    4.clear()  #清空

    改:

    字典value是否可以添加,要看它的类型,如果是可变类型,就能添加,如果不是,就不能添加 

    1.老key = 值

    # dic = {"河南":"胡辣汤", "开封": "灌汤包", "武汉":"热干面"}
    # # dic['河南'] = "烩面" # 老key = 值
    # print(dic)

     2.dic.update(d)  #把d更新到dic中

    查:

    1.dic[key]   #如果key不存在就会报错

    dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    print(dic1["赵四四"])        #KeyError:"'赵四四' key不存在

     2.get()  有2个参数,如果只给一个,当key不存在时就返回空

    dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    # print(dic1.get("刘能能"))  # None 当key不存在返回None
    # print(dic1.get("刘能能", "没有这个人")) # 当key不存在. 返回第二个参数. 默认第二个参数是None

    3.setdefault()  能查也能添加,如果字典里没有这个键值对,就添加,如果有这个键,就返回此键的值

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    dic.setdefault("hello","我爱你中国")        #key不重复,添加成功,返回value    
    print(dic.setdefault("意大利","真棒"))   #由于字典里这个有同样的key,返回值就是字典里的key现有value

    字典的其他操作

    update()    #覆盖

    # dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    # dic2 = {"赵四":"宝宝", "刘能":"萌萌", "皮校长":"皮长山"}
    dic1.update(dic2)    #把dic2中的内容更新到dic1中
    print(dic1)
    print(dic2)

    ===========================================================================================

    集合(set)  

    没有索引和切片!

    集合是可变的数据类型,但是它要求里面的元素不可以是可变类型

    # 集合本身是可变的数据类型 . 不可哈希
    # 集合套集合->不能互相嵌套的
    # 集合中的元素必须可哈希(不可变的)

    添加

    add

    thisset.add("Facebook")
    s.update( x ) # 参数可以是列表,元组,字典等 

    *****集合可以去重复

    lst = ["麻将", "牌九", "骰子", "扑克", "老虎", "骰子", "扑克", "老虎", "扑克", "老虎", "扑克", "老虎"]
    s = set(lst)  #把列表转化成字典,去重复
    print(s)  
    lst = list(s)  #再把去重的字典转换成列表
    print(lst)

    增:

    1. set.add()      #添加到集合

    2. update()    #迭代添加

    删:

    1. set.pop()    #随机删除一个

    2. remove(元素) #指定元素删除  ,无返回值,直接把原内容上改掉了,不许要再接收

    3.clean()  #清除集合

    改:

    先删后添就是改

    集合的其他操作

    交集  #就是查找重复

    1.& #与字符

    2.intersection()

    s1 = {"门神", "灯神", "灯神你在笑什么?"}
    s2 = {"门神", "灯神", "你俩在干什么?"}
    print(s1 & s2)
    print(s1.intersection(s2))

    并集:  #就是合到一起

    s1 = {"门神", "灯神", "灯神你在笑什么?"}
    s2 = {"门神", "灯神", "你俩在干什么?"}
    print(s1 | s2)
    print(s1.union(s2))

    差集

    1. set.difference(set1)   #查看set跟set1的不同

    # s1 = {"门神", "灯神", "灯神你在笑什么?"}
    # s2 = {"门神", "灯神", "你俩在干什么?"}
    # print(s1 - s2) # s1中特有的内容
    # print(s1.difference(s2))

    反差集:  #就是两个集合中特有的内容

    1. ^ 

    2.symmetric_difference()

    # s1 = {"门神", "灯神", "灯神你在笑什么?"}
    # s2 = {"门神", "灯神", "你俩在干什么?"}
    # print(s1 ^ s2) # 两个集合中特有的内容
    # print(s1.symmetric_difference(s2))

    集合套集合

    1. frozenset()

    # s = frozenset({"哈哈","呵呵"}) # 不可变的数据类型(集合)
    # for el in s:
    #     print(el)

    ------------------------------------------------------------------------------------------------------------------------------

    random.randint(a,b)   #返回范围[a, b]中的随机整数,包括两个端点。

  • 相关阅读:
    java中的几种对象(PO,VO,DAO,BO,POJO)
    【转】Spring boot 打成jar包问题总结
    mac 上安装lua
    Mac下更新Vim到最新版本
    刘以鬯和香港文学
    权重随机算法的java实现
    MySQL具体解释(7)-----------MySQL线程池总结(一)
    IIS PHP 配置 问题总结
    HDU 3622 Bomb Game(2-sat)
    poj 2388 Who's in the Middle
  • 原文地址:https://www.cnblogs.com/lgw1171435560/p/10046161.html
Copyright © 2011-2022 走看看