python学习 -- dict

# 字典类型的创建方法:

1. 直接使用{ }填充键值对:

dict1 = {"key": "value"}
print(dict1)  # {'key': 'value'}

2. 使用字典构造方法dict():

方法中需要传入一个可迭代对象,不传的话创建一个空字典;

list = [("a", "b"), ("c", "d")]
dict1 = dict(list)
print(dict1)  # {'a': 'b', 'c': 'd'}
dict2 = dict()
print(dict2)  # {}

需要注意的是:dict()中的第一层 [ ] 本意是一个列表,这种情况下是将列表转化为一个字典,字典可以为空,所以第一层[]中可以不包含内容;第二层 [ ] / ( ) 代表字典中的一个键值对,所以必须包含两个元素

3. 使用字典推导式:

list = [["e", "f"], ["g", "h"]]
dict = {k, v for k: v in list}
print(dict)  # {'e': 'f', 'g': 'h'}

使用字典推导式还可以简化一些场景的代码数量:

例:给定一个字典对象{'a': 1, 'b': 2, 'c': 3},找出其中所有大于 1 的键值对,同时 value 值进行平方运算

使用一般方法:

dict = {'a': 1, 'b': 2, 'c': 3}
data = {}
for x, y in dict.items():
    if y > 1:
        data[x] = y**2
print(data)

.item() 方法是 Python 中字典的内置方法,主要用于获取字典中键值对的键和值(即 key 和 value)。

使用推导式:

dict = {'a': 1, 'b': 2, 'c': 3}
data = {x: y**2 for x, y in dict.items() if y > 1}
print(data)

# 访问字典中的元素:

字典中使用key来访问对应value值:

dict = {"a": "b", "c": "d"}
print(dict["c"])  # d

# 新增/修改 字典元素:

dict[key] = value 如果key不存在,则会在字典中新增一个"key": "value" 键值对;如果key已经存在,则会将key对应的value值修改为最新值;

dict = {"a": "b", "c": "d"}
dict["e"] = "f"
dict["c"] = "k"
print(dict)  # {'a': 'b', 'c': 'k', 'e': 'f'}

# 嵌套字典:

dict6 = {"room": 123456, "switch": {"LIVE": "ON", "APP": "OFF"}}
print(dict6["switch"]["LIVE"])  # 获取LIVE键的值  ON
dict6["switch"]["APP"] = "CRASH"  # 修改APP键的值  
print(dict6["switch"]["APP"])  # CRASH

# 字典方法:

keys()  返回一个由字典中key组成的新视图对象

dict = {"a": "b", "c": "d"}
key = dict.keys()
print(key)  # dict_keys(['a', 'c'])

values()  返回一个由字典中value组成的新视图对象

dict = {"a": "b", "c": "d"}
value = dict.values()
print(value)  # dict_values(['b', 'd'])

items()  返回一个由字典中 键值对 组成的新视图对象

dict = {"a": "b", "c": "d"}
item = dict.items()
print(item)  # dict_items([('a', 'b'), ('c', 'd')])

get(key)  获取指定key关联的value值 入参:key必传 返回:如果key存在于字典中,返回对应value值 如果key不存在,则返回None,不会引发KeyError错误

dict = {"a": "b", "c": "d"}
find = dict.get("a")
print(find)  # b
find_2 = dict.get("x")
print(find_2)  # None

update(dict)  使用来自dict的键/值对更新字典,覆盖原有的键和值,若键不存在,则新建 入参:字典对象,必传 返回:None

dict = {"a": "b", "c": "d"}
dict.update({"a": "e"})
print(dict)  # {'a': 'e', 'c': 'd'}
dict.update({"o": "k"})
print(dict)  # {'a': 'e', 'c': 'd', 'o': 'k'}

pop(key)  删除指定key的键值对,并返回删除key对应的value值,入参:key必传 返回:如果key存在于字典中,则将其移除并返回value值 如果key不存在于字典中,则会引发KeyError

dict = {"a": "b", "c": "d"}
delete = dict.pop("a")
print(delete)  # b
delete_2 = dict.pop("o")  # KeyError: 'o'

# 字典推导式 实例:

给定一个字典对象,请使用字典推导式,将它的key和value分别进行交换。也就是key变成值,值变成key。

输入: {'a': 1, 'b': 2, 'c': 3}

输出: {1: 'a', 2: 'b', 3: 'c'}

dict = {'a': 1, 'b': 2, 'c': 3}
dict_2 = {y: x for x, y in dict.items()}
print(dict_2)  # {1: 'a', 2: 'b', 3: 'c'}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值