Python3 通过字典的get()方法和setdefault()方法添加映射多个值的元素(用列表和集合实现)

字典中的值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

字典有以下几种常用添加元素的方法:

dict = {'a': 1, 'b': 2}
print(dict)            # {'a': 1, 'b': 2}

dict['c'] = 3
print(dict)            # {'a': 1, 'b': 2, 'c': 3}

dict.update({'b': 4})
print(dict)            # {'a': 1, 'b': 4, 'c': 3}

dict.update(d = 5, e = 6) # 这种是以赋值的方法加入字典
print(dict)            # {'a': 1, 'b': 4, 'c': 3, 'd': 5, 'e': 6}

可以看到当字典中存在已有的元素时,会覆盖已有元素的值,而不会在已有元素上的值添加新值,这时候就可以采用列表或集合的形式作为字典的值来添加多个元素。

先看看字典的get()方法:返回指定键的值,如果键不在字典中返回默认值 None

dict.get(key, default=None)
  • key -- 字典中要查找的键。
  • default -- 如果指定的键不存在时,返回该默认值。

字典的setdefault()方法:如果key在字典中,返回对应的值。如果不在字典中,则插入key及设置的默认值default,并返回default ,default默认值为None

dict.setdefault(key, default=None)
  • key -- 查找的键值。
  • default -- 键不存在时,设置的默认键值。

字典的get()方法和setdefault()方法类似,那么就有以下两种添加元素的方法:

dict = {'a': 1, 'b': 2}
dict['c'] = dict.get('c', 3) # 通过get()方法添加元素
print(dict)            # {'a': 1, 'b': 2, 'c': 3}

dict.setdefault('d', 4) # 通过setdefault()方法添加元素
print(dict)            # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

用列表实现添加多个值:

# a对应1,2,3,b对应4,5
letter = ['a', 'b']
num = [1, 2, 3, 4, 5]
p = {}

# 利用dict.get()先创建空的列表
p[letter[0]] = p.get(letter[0], [])   # 设置get()方法的默认值为空列表[]
p[letter[1]] = p.get(letter[1], [])   # p的值为{'a': [], 'b': []}

# 再加入值
p[letter[0]].append(num[0])
p[letter[0]].append(num[1])
p[letter[0]].append(num[2])

p[letter[1]].append(num[3])
p[letter[1]].append(num[4])    # p的值为{'a': [1, 2, 3], 'b': [4, 5]}

用集合实现添加多个值:

# a对应1,2,3,b对应4,5
letter = ['a', 'b']
num = [1, 2, 3, 4, 5]
p = {}

# 利用dict.setdefault()先创建空的集合
p.setdefault(letter[0], set())   # 设置setdefault()方法的默认值为空集合set()
p.setdefault(letter[1], set())   # p的值为{'a': set(), 'b': set()}

# 再加入值
p[letter[0]].add(num[0])
p[letter[0]].add(num[1])
p[letter[0]].add(num[2])

p[letter[1]].add(num[3])
p[letter[1]].add(num[4])    # p的值为{'a': {1, 2, 3}, 'b': {4, 5}}

猜你喜欢

转载自blog.csdn.net/weixin_41611054/article/details/102872690
今日推荐