Python Set 与 dict

本文介绍了Python中的集合和字典类型,包括它们的特点、创建方式、操作及限制。集合是无序且自动去重的数据类型,不能直接获取或修改元素;字典则为键值对存储,表面有序但实际存储无序,可以获取和修改键对应的值。字典的键必须是不可变数据类型,而集合的值则没有此类限制。同时,文章提到了哈希算法在存储数据时的作用。
摘要由CSDN通过智能技术生成

Set 集合类型 (交差并补) 特点 :无序 , 自动去重

  • 集合用{}表示,元素间用逗号分隔
  • 建立集合类型用{}或set()
  • 建立空集合类型,必须使用set
  • 定义一个普通的集合
    setvar = {"shy","肉鸡","gala","小虎","狼牙山五壮士"}
    print(setvar , type(setvar) )        //打印出来随机排列,无序
    
    可以获取其中的元素吗? 不行
     print(setvar[0])                    // error
     
    可以修改其中的元素吗? 不行
     setvar[0] = "嘻嘻"                 // error
    
      setvar = {"shy","肉鸡","gala","小虎","牙山","shy"}
      print(setvar)
    
  • 定义一个空集合
    setvar = {}                       # 字典     //{} <class 'dict'>
    
    setvar = set()                   # 空集合   //srt()  <class 'dict'>
    print(setvar , type(setvar))
    

dict 字典类型 键值对存储的数据,可获取,可修改 表面上有序,实际存储时无序

  • 在python3.5之前 完全无序, 在python3.5之后 表面上有序,存储时无序
  • 语法:{键1:值1 ,键2:值2 , 键3:值3 … }

  • 映射是一种键(索引) 和值(数据)的对应

    "streetAddr" : "中关村南大街55号"
    "city" : "北京市"
    
  • 定义一个空的字典

    dictvar = {}
    print(dictvar , type(dictvar))
    
  • 定义一个普通字典

    dictvar = {"top":"shy","middle":"肉鸡","bottom":"gala","support":"小明","jungle":"wei"}
    print(dictvar)
    
    获取字典中的数据
    res = dictvar["support"]
    res = dictvar["jungle"]
    print(res)
    
    修改字典中的数据
    dictvar["bottom"] = "jacklove"
    print(dictvar)
    

set 和 dict 的数据类型限制

  • 字典的键 和 集合的值 有数据类型限制只能使用如下类型: (不可变的数据类型 可哈希的数据类型)

    Number(int float bool complex) , str , tuple

  • 可变数据: set dict list

  • 字典的键是唯一的,字典的值没有数据类型的限制;

    字典
    dictvar = {1:1 , "222":2 , 3.14:4 , 5-90j:5  , False:999 , (1,2,3,4,5):[1,2,4] }
    print(dictvar , type(dictvar))
    
    集合
    setvar  = {1,3.4,"sd",(1,2,3),4-10j,False }  //如果是True,则会被去重
    print(setvar)  
    
    (了解) 哈希算法
    为了更加均匀的把数据分配到内存中,于是采用哈希算法,以减少哈希碰撞.更快的存储数据
    哈希算法要求数据类型只能是不可变的数据 (Number str  tuple) ,也叫可哈希数据类型
    哈希算法存储的数据都是无序的,所以字典和集合无序;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值