Python字典(Dictionary)的setdefault()方法的详解,字典中的赋值技巧

定义

1.字典的setdefault() 方法和 get()方法类似,返回指定键的值,如果键不在字典中,将会添加键值对,值默认为None。
2.setdefault()与get()区别
setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。

语法

dict.setdefault(key, default=None)

代码实现

#coding=utf-8

# setdefault()的语法
# dict.setdefault(key, default=None)
# key :查找的键值
# default :若键不存在,设置的默认键值
# 若查找的key在字典中,则返回相应的值,不在就返回defaultdefault默认值为None
# 特性:保护了字典原来数据的情况下进行赋值

d1 = {"Name": "Jay", "Age": 41}
# 当查找的键值 key存在的时候,新的数据将不会被更新到原字典中,这样就保护了原字典的数据不受改变
print("Name 键的值为 :",d1.setdefault("Name","JJ"))
print("Age 键的值为 :",d1.setdefault("Age", None))

# 当查找的键值 key不存在的时候,setdefault()函数会返回默认值并更新字典,添加键值对
print("Sex 键的值为 :",d1.setdefault("Sex", "男"))
print("新字典为:", d1)

print("❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤")

# 扩展:
# 要是我们想要改变原字典的值该怎么办呢?
# 字典直接赋值(单个)
d1["Name"]="周杰伦"
print("改名字后的新字典为:",d1)

# 字典批量更新
d2 = {"性别": "男", "职业": "导演"}
d1.update(d2)
print("d1字典进行批量操作后为",d1)

# 注意:使用update批量更新时,若key相等,则值会改变
d2 = {"Name": "花菜", "Age": "一个月"}
d1.update(d2)
print("d1字典进行批量操作后为",d1)

print("❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤")

# setdefault()与get()区别
# setdefault()找不到key,就返回默认值None并更新字典,添加键值
# get只返回默认值,而不会改变原字典
a = {}
x = a.setdefault("姓名")
print(x)
print(a)


x1 = a.get("姓别")
print(x1)
print(a)

print("❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤")

# 找到key,就返回对应的值
b = {"姓名":"甜甜"}
x2 = b.setdefault("姓名")
print("x2的值为",x2)
print("字典b为",b)





运行结果
Python字典(Dictionary)的setdefault()方法的详解,字典中的赋值技巧_第1张图片

你可能感兴趣的:(Python)