Python基础杂货店(六)-----字典

字典的定义

  • dictionary(字典) 是 除列表以外 Python 之中 最灵活 的数据类型(有点类似java中的Map),是使用散列表实现的数据结构,键是可哈希。
  • 字典同样可以用来 存储多个数据
    • 通常用于存储 描述一个 物体 的相关信息
  • 和列表的区别
    • 列表 是 有序 的对象集合
    • 字典 是 无序 的对象集合
  • 字典用 {} 定义
  • 字典使用 键值对 存储数据,键值对之间使用 , 分隔
    •  key 是索引
    •  value 是数据
    •  和  之间使用 : 分隔
    • 键必须是唯一的
    •  可以取任何数据类型,但  只能使用 字符串数字或 元组
lierge = {"name": "lian",
          "age": 20,
          "height": 1.75}

创建字典的多种方式

  1. 通过关键字dict与关键字参数
dict(name="lian",age=20)

   2.通过二元组列表创建

d=[('name','lian'),('age',20)]
dic=dict(d)

3.通过zip与dict结合创建

z=zip("abc",[1,2,3])
dict(z)

4.通过字典推导式创建

dic={i:chr(i*2) for i in range(5)}

5.通过dict.fromkeys()创建 通常用来初始化字典, 设置value的默认值

dic=dict.fromkeys("abc",'x')

6.其它

lis=['x',1,'y',2,'z',3]
dic=dict(zip(lis[::2],lis[1::2]))

字典常用操作

  • clear()清除所有数据,返回None
  • get(k, d)获取某个键值,如果不存在,返回默认值d,否则抛出异常
  • keys()返回一个含有所有键的集合
  • values()返回含有所有键值的集合
  • items()返回还有所有键值队的集合
  • copy()拷贝
  • fromkeys(*args,**kwargs)用来初始化字典, 设置value的默认值
  • setdefault(k, d)添加键值对,若k存在,不添加,否则添加
  • pop(k, d)移除键k,返回键值,不存在k返回默认值d,若无设置默认值,抛出异常
  • popitem()随机移除某对键值对,返回键值对。若字典为空,抛出异常
  • update()合并字典

 

dic = dict(zip("abc",[i for i in range(3)]))

dic['d'] = 4   #添加键值对
dic.setdefault('f',5) #添加键值对
dic.pop('a') #移除
dic.popitem() #移除
dic.fromkeys('def',x) # 返回新的字典,但是dic本身内容不变
dic.keys()#获取所有键
dic.items()#获取所有键值对
dic.values()#获取所有键值
dic.clear()#清空字典

字典排序几种方法

#对字典的键值进行排序
test = {"a":1,"d":-1,"b":3,"c":2}
sorted(test)  #这种写法只会对键进行排序

#正确写法
方法一:
sorted(test.items(),lambda x:x[1],reverse=True)

方法二:
import operator
sorted(test.items(),key = operator.itemgetter(1))

方法三:
sorted(zip(test.values(),test.keys()))

优化字典查找https://blog.csdn.net/yufeng0528/article/details/83977075

Python内存优化https://www.cnblogs.com/xybaby/p/7488216.html#_label_4

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值