python字典包含键 python中字典的键具有什么性

您所在的位置:网站首页 python字典添加元素不覆盖 python字典包含键 python中字典的键具有什么性

python字典包含键 python中字典的键具有什么性

2023-06-18 09:43| 来源: 网络整理| 查看: 265

Python 中的字典可与字符串、列表、元组不同,因为字典 dict 需要由两部分组成,分别是 key 和 value ,简称:键值对,下面具体讲解一下关于字典的特点:

1、由一个或者多个键值对构成,键值对的类型可以不相同也可以相同;

2、字典中的键值对需要写在 {} 中括号内部,键值对中的 key 和 value 用 : 冒号隔开,键值对与键值对之间用 ,逗号隔开;

3、字典是一个无序的集合;

4、字典中 key 具有唯一性;

python字典包含键 python中字典的键具有什么性_python字典包含键

字典的格式:

{key:value,key:value,key:value,....}{姓名:老王,地址:隔壁,性别:男,爱好:打球}键 : 值1 字典的操作都是根据 key,字典的key是不能重复的,是唯一的 2 字典里面的元素是无序的 3 在字典添加元素时,如果key存在就覆盖value值,如果不存在就添加新的键值对 4 字典的key的类型是不可变类型可变类型 : 列表,字典 不可变类型 : 字符串,元组,数字类型

代码示例:

# 定义一个空字典 dict1 = dict() print(dict1) # 输出结果:{} # 输出字典类型 dict print(type(dict1)) # 输出结果: # 获取字典键值对数量 print(len(dict1)) # 输出结果:0 #字典可以有一个或者多个键值对构成,键值对与键值对之间使用逗号隔开 dict2 = {"name":"隔壁老王", "age":42, "singe_dog":True} print(dict2) # 输出结果:{'name': '隔壁老王', 'age': 42, 'singe_dog': True} # 输出字典类型 dict print(type(dict2)) # 输出结果: # 获取字典键值对数量 print(len(dict2)) # 输出结果:3 # 字典中出现了两个一样的key:"age",默认后面的value会覆盖前面的value dict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15} print(dict3) # 输出结果:{'name': '隔壁老王', 'age': 15, 'singe_dog': True}

注意:如果字典中出现相同的 key 值,只有最后一个 key / value 有效,前面相同的 key / value 会被覆盖,这就是字典 dict 所谓的唯一性。

添加数据

代码示例:

# 定义一个字典 dict1 = {"姓名":"美女","地址":"宇宙","性别":"女","爱好":"打扮"} print(dict1) # 输出结果:{'姓名': '美女', '地址': '宇宙', '性别': '女', '爱好': '打扮'} print("dict1的类型是:",type(dict1)) # 输出结果:dict1的类型是: # 添加没有的 key 元素,则直接添加 dict1["伴侣"] = "超人" print("添加没有的key",dict1) # 输出结果:添加没有的key {'姓名': '美女', '地址': '宇宙', '性别': '女', '爱好': '打扮', '伴侣': '超人'} # 添加已经有的 key 元素,则直接覆盖 dict1["地址"] = "地球" print("添加已经有的key",dict1) # 输出结果:添加已经有的key {'姓名': '美女', '地址': '地球', '性别': '女', '爱好': '打扮', '伴侣': '超人'} # 获取字典键值对数量 print(len(dict1)) # 输出结果:4修改数据

1、字典是无序的,每个键值对没有索引值,这也是字典与字符串、列表、元组的区别;

2、修改字典中的键值对数据,直接根据键值对中的 key 值操作即可;

代码示例:

# 定义一个字典 dict1 = {"name":"zhangsan","age":38,"sing_dog":True} print(dict1) # 输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True} # 修改key等于"name"对应的value,直接覆盖原有的值 dict1["name"] = "隔壁老王" print(dict1) # 输出结果:{'name': '隔壁老王', 'age': 38, 'sing_dog': True} # 修改key等于"age"对应的value,直接覆盖原有的值 dict1["age"] = 18 print(dict1) # 输出结果:{'name': '隔壁老王', 'age': 18, 'sing_dog': True} # 修改key等于"sing_dog"对应的value,直接覆盖原有的值 dict1["sing_dog"] = False print(dict1) # 输出结果:{'name': '隔壁老王', 'age': 18, 'sing_dog': False}删除数据

删除字典中的数据,需要根据键值对中的 key 值来删除对应的键值对,删除使用 del 关键字;

代码示例:

# 定义一个字典 dict1 = {"name":"zhangsan","age":38,"sing_dog":True} print(dict1) # 输出删除之前的字典 # 输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True} # 删除key等于"name"对应的键值对 del dict1["name"] print(dict1) # 输出结果:{'age': 38, 'sing_dog': True} # 删除key等于"age"对应的键值对 del dict1["age"] print(dict1) # 输出结果:{'sing_dog': True} # 删除key等于"sing_dog"对应的键值对 del dict1["sing_dog"] print(dict1) # 输出结果:{}查询数据

查询字典中的键值对数据,操作和删除数据、修改数据一样,直接根据键值对中的 key 值操作即可;

代码示例:

# 定义一个字典 dict1 = {"name":"zhangsan","age":38,"sing_dog":True} print(dict1) # 输出字典 # 输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True} # 查询key等于"name"对应的value,通过key值查询,直接输出对应的value值 print(dict1["name"]) # 输出结果:zhangsan # 查询key等于"name"对应的value,通过key值查询,直接输出对应的value值 print("查询姓名:",dict1.get("name")) # 输出结果:查询姓名: zhangsan

字典的常用方法:

1、len 函数:获取字典长度,统计元素个数

2、update 函数:将一个字典添加到另外一个字典的末尾,把两个字典合并到一个字典,因为字典的key是唯一的,所以当字典合并起来的时候,key如果不存在就添加key,value,存在就修改value值。

3、clear 函数:清空字典

4、setdefault 函数:如果不存在就添加

代码示例:

# 定义一个字典 dict1 = {"name":"zhangsan","age":38} print(dict1) # 输出字典 # 输出结果:{'name': 'zhangsan', 'age': 38} # 定义一个字典 dict2 = {"sing_dog":True} print(dict2) # 输出结果:{'sing_dog': True} # 统计字典中的元素个数 print("统计字典中的元素个数:",len(dict1)) # 输出结果:统计字典中的元素个数:2 # update()函数:将一个字典添加到另外一个字典的末尾 dict1.update(dict2) # 将dict2合并到dict1,如果dict2中的key在dict1中没有,就添加键值对,如果dict2中的key在dict1有,覆盖value值 print(dict1) # 输出字典 # 输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True} # setdefault 在字典中插入一个值,如果这个key不存在就添加,如果key存在就返回key对应的value值 dict1.setdefault("age","18") # 插入字典中有的key,则不变 dict1.setdefault("location") # 插入字典中没有的key,则直接添加,value为none print("setdefault",dict1) # 输出结果:setdefault {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'location': None}字典的遍历

获取所有的值

代码示例:

# 定义字典 dict1 = {"name":"zhangsan","age":38} # 获取所有的key print(dict1) # 输出结果:{'name': 'zhangsan', 'age': 38} # 输出dict1的keys值 print(dict1.keys()) # 输出结果:dict_keys(['name', 'age']) # 通过 key 拿 value for i in dict1.keys(): print("key={}".format(i),"value={}".format(dict1.get(i))) # 先拿到所有的key 然后根据key拿到value # 输出结果: # key=name value=zhangsan # key=age value=38

获取所有的value值

代码示例:

# 定义两个字典 dict1 = {"name":"zhangsan","age":38} dict2 = {"sing_dog":True} # 获取所有的value值 print(dict1.values()) for i in dict1.values(): print(i) # 输出结果: # dict_values(['zhangsan', 38]) # zhangsan # 38

获取所有的键和值

代码示例:

# 定义字典 dict1 = {"name":"zhangsan","age":38} # 取出所有的key和value print(dict1.items()) for i,j in dict1.items(): print(i,j) # 输出结果: # dict_items([('name', 'zhangsan'), ('age', 38)]) # name zhangsan # age 38

字典拷贝

代码示例:

# 定义两个字典 dict1 = {"name":"zhangsan","age":38} dict2 = {"sing_dog":True} # 拷贝 dict2 = dict1.copy() print(dict1) # 输出结果:{'name': 'zhangsan', 'age': 38} print(dict2) # 输出结果:{'name': 'zhangsan', 'age': 38}

返回最后一个键值对

代码示例:

# 定义字典 dict1 = {"name":"zhangsan","age":38} # 返回最后一个键值对 print(dict1.popitem()) print(dict1) # 输出结果:('age', 38)

根据 key 来创建字典

代码示例:

# 定义字典 dict1 = {"name":"zhangsan","age":38} # 根据key来创建字典 print(dict1.fromkeys("key")) # 输出结果:{'k': None, 'e': None, 'y': None} print(dict1) # 输出结果:{'name': 'zhangsan', 'age': 38}

根据key来删除数据

代码示例:

# 定义字典 dict1 = {"name":"zhangsan","age":38} # 根据key值删除元素 dict1.pop("name") print(dict1) # 输出结果:{'age': 38} # 删除最后一个元素 dict1.popitem() print(dict1) # 输出结果:{'name': 'zhangsan'}

清空字典

代码示例:

# 定义字典 dict1 = {"name":"zhangsan","age":38} # 清除整个字典 dict1.clear() print(dict1) # 输出结果:{}字典推导式

语法规则:

语法一: key:字典中的key value:字典中的value dict.items():序列 condition:条件表达式 key_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理 value_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理 格式1:{key_exp:value_exp for key,value in dict.items() if condition} 语法二: key:字典中的key value:字典中的value dict.items():序列 condition:条件表达式 key_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理 value_exp1:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp1处理 value_exp2:在for循环中,如果条件表达式condition不成立(即条件表达式不成立),返回对应的key,value并作key_exp,value_exp2处理 格式2:{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}

代码示例:

# 1.在字典中提取或者修改数据,返回新的字典 # 案例一:获取字典中key值是小写字母的键值对 dict2 = {} dict1 = {"a":10,"B":20,"C":True,"D":"hello world","e":"python教程"} # 传统写法 for key,value in dict1.items(): # 如果是key是小写 if key.islower(): dict2[key] = value print(dict2) # 输出结果:{'a': 10, 'e': 'python教程'} # 字典推导式写法 dict3 = {key:value for key,value in dict1.items() if key.islower()} print(dict3) # 输出结果:{'a': 10, 'e': 'python教程'} # 案例二:将字典中的所有key设置为小写 dict3 = {key.lower():value for key,value in dict1.items() } print(dict3) # 输出结果:{'a': 10, 'b': 20, 'c': True, 'd': 'hello world', 'e': 'python教程'} # 案例三:将字典中所有key是小写字母的value统一赋值为'error' dict4 = {key:value if key.isupper() else "error" for key,value in dict1.items() } print(dict4) # 输出结果:{'a': 'error', 'B': 20, 'C': True, 'D': 'hello world', 'e': 'error'}

案例:把字典转化成字符串

代码示例:

# 定义字典 dict2 = {'name': '老王', 'age': 18, 'addr': '长沙'} str1 = str(dict2) print("str1的类型是{},{}".format(type(str1),str1)) # 输出结果:str1的类型是,{'name': '老王', 'age': 18, 'addr': '长沙'}

将字典的 value 和 key 分别整理成单独的列表

代码示例:

# 定义字典 dict3 = {"name":"老王","age":18,"addr":"长沙" } # 取出字典的 key 值 print(dict3.keys()) # 取出字典的 value 值 print(dict3.values()) """ 输出结果: dict_keys(['name', 'age', 'addr']) dict_values(['老王', 18, '长沙']) """



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3