把一个字典拆分成多个字典
时间: 2023-11-24 08:08:09 浏览: 29
可以使用 for 循环遍历原始字典中的键值对,然后根据某个条件将它们分配到不同的字典中。
例如,将原始字典中键值对的值为偶数的项分配到一个字典中,将值为奇数的项分配到另一个字典中:
```python
original_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
even_dict = {}
odd_dict = {}
for key, value in original_dict.items():
if value % 2 == 0:
even_dict[key] = value
else:
odd_dict[key] = value
print(even_dict) # 输出 {'b': 2, 'd': 4}
print(odd_dict) # 输出 {'a': 1, 'c': 3, 'e': 5}
```
在这个例子中,我们遍历了原始字典中的每个键值对,检查它们的值是否为偶数。如果值是偶数,就将它们添加到 even_dict 字典中,否则添加到 odd_dict 字典中。最终,我们打印出了拆分后的两个字典。
相关问题
把一个工作簿按照不同人名拆分成多张工作簿
要将一个工作簿按照不同的人名拆分成多个工作簿,您可以使用openpyxl库以及一些逻辑来实现。以下是一个示例代码:
```python
from openpyxl import load_workbook, Workbook
# 加载工作簿
workbook = load_workbook('input.xlsx')
# 获取要拆分的工作表
sheet = workbook['Sheet1']
# 获取人名所在的列索引
name_column = 'A' # 假设人名在第一列
# 创建一个字典来存储每个人的工作簿
workbooks = {}
# 遍历每一行数据,根据人名拆分到不同的工作簿
for row in sheet.iter_rows(min_row=2, values_only=True):
name = row[0] # 假设人名在第一列
if name not in workbooks:
# 如果该人的工作簿还不存在,则创建一个新的工作簿
workbooks[name] = Workbook()
new_sheet = workbooks[name].active
new_sheet.title = sheet.title
# 拷贝原始工作表的标题行
for header_row in sheet.iter_rows(min_row=1, max_row=1, values_only=True):
new_sheet.append(header_row)
# 将当前行数据拷贝到对应的工作簿
new_sheet = workbooks[name].active
new_sheet.append(row)
# 保存每个人的工作簿
for name, workbook in workbooks.items():
workbook.save(f'{name}.xlsx')
```
此代码将输入文件中的工作表按照人名拆分为多个工作簿,并将每个人的工作簿保存为以其名字命名的文件(例如,John.xlsx、Jane.xlsx等)。请根据实际情况修改代码,以适应您的需求。
将一个list根据某一属性拆分成多个list
可以使用 Python 中的列表推导式和条件判断语句来实现将一个list根据某一属性拆分成多个list的操作。例如,假设我们有一个列表`students`,其中每个元素都是一个字典,表示一个学生的信息,包括姓名、年龄和性别,我们想要根据性别将学生分成男生和女生两个列表,可以使用如下代码:
```
students = [
{'name': '张三', 'age': 20, 'gender': '男'},
{'name': '李四', 'age': 19, 'gender': '女'},
{'name': '王五', 'age': 21, 'gender': '男'},
{'name': '赵六', 'age': 20, 'gender': '女'},
]
male_students = [s for s in students if s['gender'] == '男']
female_students = [s for s in students if s['gender'] == '女']
print(male_students)
print(female_students)
```
输出结果为:
```
[{'name': '张三', 'age': 20, 'gender': '男'}, {'name': '王五', 'age': 21, 'gender': '男'}]
[{'name': '李四', 'age': 19, 'gender': '女'}, {'name': '赵六', 'age': 20, 'gender': '女'}]
```
这样就实现了将学生列表根据性别拆分成男生和女生两个列表的操作。