python基本语法:基本数据类型—Dictionary

字典

@ 概述:字典是无序的,使用键-值(key-value)存储,具有极快的查找速度
key的特点:

  1. 子典中的key必须是唯一的
  2. key必须是不可变对象:字符串、Number、元组这些是不可能变的数据,可以作为key 值
  3. list 是可变的,不能作为key使用

@ 格式:{key: value}

一、字典创建
'''
字典的创建
'''
# 1、创建一个空字典
dic1 = {}
print(type(dic1))  # <class 'dict'>

# 2、创建只有一个元素的字典
dic2 = {"lilei":78}

# 3、Number 作为key
dic3 = {1:"q",2:"b",1.23:"c"}

# 4、tuple 作为key
dic4 = {(1,2):1}
print(type(dic4))  # <class 'dict'>

# list 作为key     ******* 不能用list类型作为key值
# dic5 = {[1,2]:"a"}   # TypeError: unhashable type: 'list'
二、 字典的访问
'''
字典的访问
'''
# 1、获取某一个元素   字典名[key]  不存在这个键会报错
dic1 = {"张三": 95, "lily": 98, "Hanmeimei": 95}
print(dic1["张三"])  # 95
# print(dic1["afgasdf"])  # KeyError: 'afgasdf'  

# 2、获取元素  字典名.get(key)  get 方法获取值,如果当前key不存在,返回None
print(dic1.get("lily"))  # 98
print(dic1.get("dsfasgfa"))   # None

# 3、key 必须是唯一的
dic2 = {"a":1, "b":2, "a":100}
# a=1
# b=2
# a=100
# print(a)
print(dic2)  # {'a': 100, 'b': 2}   只保留最后一次key的值
三、字典的操作
'''
'''
# 1、 增:增加元素    增加一个新的key   字典名[key] = value
dic1 = {"张三": 95, "lily": 98, "Hanmeimei": 95}
dic1["lilei"] = 100
print(dic1)  # {'张三': 95, 'lily': 98, 'Hanmeimei': 95, 'lilei': 100}

# 2、更改元素   字典名[key] = new value
dic1["lily"] = 72
print(dic1)  # {'张三': 95, 'lily': 72, 'Hanmeimei': 95, 'lilei': 100}

# 3、删除元素  pop(key)
dic1.pop("张三")
print(dic1)  # {'lily': 72, 'Hanmeimei': 95, 'lilei': 100}
四、字典的遍历

# 1、遍历key值
dic1 = {"张三": 95, "lily": 98, "Hanmeimei": 95}
for i in dic1:
    print(i)    # 遍历的是key值  张三 lily Hanmeimei 

# 2、dic.values()  返回一个只有value的列表
print(dic1.values())   # dict_values([95, 98, 95])
for value in dic1.values():
    print(value)   # 95 98 95

# 3、 dic.keys()  :返回一个只有key值得列表
print(dic1.keys())   # dict_keys(['张三', 'lily', 'Hanmeimei'])
for key in dic1.keys():
    print(key)  # 张三 lily Hanmeimei

# 4、dic.items() :  返回key - 值 的列表
print(dic1.items())   #dict_items([('lily', 72), ('Hanmeimei', 95), ('lilei', 100)])
for key,value in dic1.items():
    print(key,"        ",value) 
五、列表和字典对比

字典
1、查找和插入的速度比较快,不会随着key- value的增加而变慢
2、需要占用大量的内存,内存浪费多
列表
1、查找和插入的速度会随着数据量的增加而变慢
2、占用空间小,内存浪费少

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值