python中数据类型
第一类:不可变类型、静态数据类型、不支持增删改操作
- 数字(number)
- 字符串(string)
- 元组(tuple)
第二类:可变类型、动态数据类型、支持增删改操作
- 列表(list)
- 字典(dictionary)
- 集合(set)
python学习–基本数据类型之字典
1、创建、使用
"""
字典的解释:
字典是以键值对的形式存储数据 (相当于c++中的set)
语法:
{key:value,key1:value...}
通过索引key寻找对应的value值
key & val 的要求
key : 必须是可hash的数据类型
val: 可以是任何数据类型 -- str list
字典中key认为只有一个数据,并且元素不可以重复
"""
# 举例 -- 定义一个字典
dic = {"jay":"周杰伦", "金毛失望": "谢逊"}
val = dic["金毛失望"]
print(val) # 谢逊
# 举例说明字典的key和val的对应的数据类型
d = {123 : "呵呵", True : "哈哈", "name" : "me", (1, 2, 3) : 123, "老赵" : ["李大妈", "刘大婶"]}
print(d)
# 通过key寻找到对应的val -- 帮助老赵 找对象
val = d["老赵"]
print(val)
2、字典的增删改查
"""
字典的增删改查
1、增
新建空字典 向空字典中添加元素(通过键值对的方式)
在已存在的字典中增加新的元素 通过键值对的形式增加
使用默认值增加 -- setdefault
2、删除
删除单个元素
使用内置方法pop
删除所有元素
使用内置方法clear
3、修改
包含上面方法
4、查询
查询的方式1: 直接通过key寻找对应val
dic[”key“]
查询的方式2: 使用get方法,直接通过key寻找对应val
dic.get(”key“)
方法区分:
相同点:
都可以查询功能
不同点:
1中当查询不存在的key的时候,直接报错
2中当查询不存在的key的时候,不会报错,返回None
"""
dic1 = dict()
dic1["key1"] = "小猫"
dic1["key2"] = "小狗"
print(dic1) # {'key1': '小猫', 'key2': '小狗'}
"""
setdefault: 设置默认值,设置的时候默认key是不存在的,若key本身存在,则使用setdefault设置失效
"""
dic1.setdefault("小猫", "祝小咪") # key必须是不存在的
print(dic1)
# # 修改
# d['jj'] = "刘能" # dict[老key] = 值 修改
# print(d)
# # 删除
dic2 = {
"齐天大圣" : "孙悟空",
"天蓬元帅" : "猪八戒",
"卷帘将军" : "沙悟净",
"金蝉子" : "唐三藏"
}
print(dic2)
val2 = dic2.pop("齐天大圣")
print(dic2)
val3 = dic2.clear()
print(dic2)
# 查询
dic3 = {
"花和尚" : "鲁智深",
"及时雨" : "宋江",
"黑旋风" : "李逵"
}
# 循环查询
for i in range(len(dic3)):
name = input("请输入一个名字:")
val = dic3.get(name)
if val is None:
print("查无此人")
else:
print(val)
print("恭喜你,找到啦!")
"""
小练习:列表和字典的
将一个列表的元素分开,把大于50的放一起, 把小于50的放一起
"""
lst = [11, 22, 33, 44, 55, 66, 77, 88, 99]
# 创建一个字典
dic = dict()
for item in lst:
if item < 50:
# 如果key不存在就创建一个
if dic.get("key1") is None:
dic["key1"] = [item]
else:
# 本身存在直接添加即可
dic["key1"].append(item)
else:
if dic.get("key2") is None:
dic["key2"] = [item]
else:
# 本身存在直接添加即可
dic["key2"].append(item)
print(dic)
解法二:简化的方法
# lst = [11, 22, 33, 44, 55, 66, 77, 88, 99]
result = {} # 结果
for item in lst:
if item > 50:
result.setdefault("bigger", []).append(item)
else:
result.setdefault("smaller", []).append(item)
print(result)
3、字典的循环
"""
字典中的循环和嵌套
循环:
字典中通过循环可以获取存储中key\val值
"""
dic = {
"花和尚" : "鲁智深",
"及时雨" : "宋江",
"黑旋风" : "李逵"
}
# 方法1: 直接通过key拿到对应的key\value
for key in dic :
print(key, dic[key])
# 方法2:通过key() 函数可以拿到所有的key
lst = dic.keys() # 保存在一个list中
print(lst)
for i in lst:
print(i,dic[i])
# 方法3:通过value() 拿到所有的value
lst1 = dic.values()
for i2 in lst1:
print(i2)
# 方法4:字典中可以通过items()拿到所有数据,直接拿到key value中的数据
for key, value in dic.items() :
print(key, dic[key])
"""
知识点补充
解构
元组和列表中可以使用 将元素拆开分别输出
"""
a = 10, 20
print(type(a)) # <class 'tuple'>
b = [10, 20]
print(type(b)) # <class 'list'>
c = dict()
print(type(c)) # <class 'dict'>
d, f = 22, 33
print(d, f)
4、嵌套
"""
字典的嵌套:字典中嵌套字典,访问字典中任意元素的数值,结合字典的常用的方法,灵活使用
"""
dic = {
"name":"吴承恩",
"西游记":{
"齐天大圣" : "孙悟空",
"天蓬元帅" : "猪八戒",
"卷帘将军" : "沙悟净",
"金蝉子" : "唐三藏"
}
}
print(dic)