在 Python 的循环中将项目添加到字典中
Adding items to a Dictionary in a Loop in Python
要在循环中将项目添加到字典:
- 使用
for
循环迭代序列。 - 或者,检查是否满足特定条件。
- 使用括号表示法将项目添加到字典中。
主程序
# ✅ add items to dictionary in a loop my_list = [('first', 'bobby'), ('last', 'hadz'), ('site', 'bobbyhadz.com')] my_dict = {} for item in my_list: my_dict[item[0]] = item[1] # 👇️ {'first': 'bobby', 'last': 'hadz', 'site': 'bobbyhadz.com'} print(my_dict) # ---------------------------------------------------------- # ✅ add items to dictionary in a loop (with condition) my_list = [('site', 'bobbyhadz.com'), ('last', 'hadz'), ('site', 'google.com')] my_dict = {} for item in my_list: if item[0] not in my_dict: my_dict[item[0]] = item[1] # 👇️ {'site': 'bobbyhadz.com', 'last': 'hadz'} print(my_dict)
第一个示例遍历元组列表并将新的键值对添加到字典中。
您可以迭代任何其他数据结构,但概念是相同的。
主程序
my_list = [('first', 'bobby'), ('last', 'hadz'), ('site', 'bobbyhadz.com')] my_dict = {} for item in my_list: my_dict[item[0]] = item[1] # 👇️ {'first': 'bobby', 'last': 'hadz', 'site': 'bobbyhadz.com'} print(my_dict)
在每次迭代中,我们访问索引处的元组项0
并将其用作键,并使用索引处的元组项1
作为值。
您经常需要做的事情是在循环中将项目添加到字典之前检查条件。
主程序
my_list = [('site', 'bobbyhadz.com'), ('last', 'hadz'), ('site', 'google.com')] my_dict = {} for item in my_list: if item[0] not in my_dict: my_dict[item[0]] = item[1] # 👇️ {'site': 'bobbyhadz.com', 'last': 'hadz'} print(my_dict)
在添加键之前,我们使用not in
运算符检查字典中是否不存在该键。
与字典一起使用时,
in
andnot in
运算符检查对象中是否存在指定的键。 dict
如果键不在字典中,我们添加一个具有指定键的新项。
或者,您可以为字典中的值使用列表。
如果键已经存在于字典中,我们将一个项目添加到列表中,否则,我们将键设置为包含该值的列表。
主程序
my_list = [['site', 'bobbyhadz.com'], ['last', 'hadz'], ['last', 'test'], ['site', 'google.com']] my_dict = {} for item in my_list: if item[0] not in my_dict: my_dict[item[0]] = [item[1]] else: my_dict[item[0]].append(item[1]) # 👇️ {'site': ['bobbyhadz.com', 'google.com'], 'last': ['hadz', 'test']} print(my_dict)
在每次迭代中,我们的if
语句检查键是否不在字典中。
如果键不在字典中,我们将键设置为包含值的列表。
如果键已经在字典中,我们使用该list.append()
方法将另一个值添加到列表中。
如果您需要在单个语句中添加或更新字典中的多个键,请使用该dict.update()
方法。
dict.update方法使用
提供的值中的键值对更新字典。
主程序
my_dict = {'name': 'Alice'} my_dict.update({'name': 'bobbyhadz', 'age': 30}) print(my_dict) # 👉️ {'name': 'bobbyhadz', 'age': 30}
该方法覆盖字典的现有键并返回None
.