python3基础篇02(基本数据类型-字典)

一.数据类型

   不可变类型:数字,字符串,元组

   可变数据类型,列表,字典,集合

列表(list):[]
元组(tuple):()
字典(dict):{}

字典

字典的定义:通过{}来表示字典      dic{键:键值} 键值:可以是任何东西,字符串或者数字等        
# 字典中每一条数据都是有一个键值对来组成  key:value,每个键值对用逗号隔开
# 字典中的key是唯一的(不能重复)
# key只能是不可变的数据类型(建议key全部使用字符串)
# key对应的value值可以是任意的数据类型

# 不可变类型的数据:数值(整数,浮点数,布尔值),字符串,元祖


# 字典数可变类型的数据:支持增删查改的操作

字典的定义

# 空字典的定义
dic = {}
print(dic)

print("*"*30)
# 字典中每一条数据都是有一个键值对来组成  key:value,每个键值对用逗号隔开
dic1 = {"name": "小明", "age": 18, "height": 180.00}
print(dic1)

print("*"*30)
#取出字典中的key,将所有的key取出来放到列表里面,再通过索引取出对应的key
y = list(dic1.keys())
print(y)
print(y[2])

print("*"*30)
#取出字典对应key的值vaule
print(dic1["height"])

结果:

其他定义方式

#第一种:直接通过{}定义字典
dic9 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
print(dic9)

# 第二种:dict这个内置函数来定义
dic10 = dict(name="小明", age=18, gender="男")
print(dic10)

# 第三种:dict直接列表字典定义
#[("aa", 11), ("bb", 22), ("cc", 33)]
dic11 = dict([("aa", 11), ("bb", 22), ("cc", 33)])
print(dic11)

结果:

字典的增删改查

增加和修改

# 增加和修改
# 有则改,无则增
dic2 = {"aa": 11, "bb": "22", "cc": 22}

# 通过键直接赋值,就可以增加元素
dic2["dd"] = 999
dic2["ff"] = 999
print(dic2)

# # 通过键直接赋值,也可以修改元素
dic2["aa"] = 999
print(dic2)

# # 一次添加多个元素
dic2.update({"a":1,"b":1,"c":3})
print(dic2)

结果:

删除

#pop方法:通过键删除指定的键值对
dic3 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
dic3.pop("aa")
print(dic3)

#popitem: 删除字典中的最后一个键值对(3.5之前的是随机删除键值对(包含3.5))
dic4 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
dic4.popitem()
print(dic4)

#clear :清空字典
dic5 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
dic5.clear()
print(dic5)

#删除数据的关键字:del(可以删除任何你想想删除的数据)
dic6 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
del dic6['cc']
print(dic6)

#清空字典,删除后会报错因为字典整个没有了
dic7 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
del dic7
print(dic7)

结果:

查找数据


# 通过键去找这个键对应的值,如果键不存在会报错
dic8 = {'aa': 999, 'bb': '22', 'cc': 22, 'dd': 999, 'ff': 999, 'a': 1, 'b': 1, 'c': 3}
print(dic8['aa'])

#get方法,通过键去找这个键对应的值,如果键不存,返回None
print(dic8.get("aab"))


# keys:获取字典中所有的键
print(list(dic8.keys()))

#values:获取字典中所有的值
print(list(dic8.values()))

print("*"*30)
#items:获取所有的键值对
print(list(dic8.items()))
print(dic8)

结果:

嵌套查询

(1)python本身支持的字符类型可以直接取出来

#想要查询到code的值
dict_test = {"result": {"code": "110002"}}
result = dict_test['result']['code']
print(result)

 

(2)如果是json格式的需要先转换为python认识的格式

想要直接取出里面的order_id是不行,因为外面有一层'{}'字符串形式的字典了,需要进行转化

 

#要取出order的值,
dict2 = {'msg': 'success',  'business_data': '{"order_id":150000001228035613}'}
#(1)取出dict2中business_data的值为:{"order_id":150000001228035613} 是jison格式的python不认识
result = dict2['business_data']
#(2)将取出的business_data进行转换成python看的懂的字符串值,使用loads函数
result2 = json.loads(result)
#(3)再次进行取值取转换后的order_id值
result3 = result2['order_id']
print(result3,type)

 

将字符串转化为字典

参考:https://www.cnblogs.com/qi-yuan-008/p/11674135.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值