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

mac2026-08-23  1

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

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

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}}

 

最新回复(0)