按照时间年月份划分的数据用户,课程,时间存储在字典中,按照年月份对年月份中用户相同的数据合并,输出示例python代码
时间: 2024-05-14 07:17:51 浏览: 145
假设数据已经存储在以下字典中:
```python
data = {
'2022_01': [{'user': 'A', 'course': 'Math', 'time': 5},
{'user': 'B', 'course': 'History', 'time': 10},
{'user': 'C', 'course': 'English', 'time': 8},
{'user': 'A', 'course': 'Physics', 'time': 3},
{'user': 'B', 'course': 'Math', 'time': 6}],
'2022_02': [{'user': 'A', 'course': 'Math', 'time': 4},
{'user': 'B', 'course': 'History', 'time': 8},
{'user': 'C', 'course': 'English', 'time': 5},
{'user': 'A', 'course': 'Physics', 'time': 2},
{'user': 'B', 'course': 'Math', 'time': 7},
{'user': 'C', 'course': 'Biology', 'time': 9}]
}
```
可以使用以下代码按照年月份对用户相同的数据进行合并:
```python
merged_data = {}
for year_month, records in data.items():
merged_data[year_month] = []
user_data = {}
for record in records:
user = record['user']
course = record['course']
time = record['time']
if user not in user_data:
user_data[user] = {}
if course not in user_data[user]:
user_data[user][course] = 0
user_data[user][course] += time
for user, course_data in user_data.items():
for course, time in course_data.items():
merged_data[year_month].append({'user': user, 'course': course, 'time': time})
print(merged_data)
```
输出结果如下:
```
{'2022_01': [{'user': 'A', 'course': 'Math', 'time': 5},
{'user': 'A', 'course': 'Physics', 'time': 3},
{'user': 'B', 'course': 'History', 'time': 10},
{'user': 'B', 'course': 'Math', 'time': 6},
{'user': 'C', 'course': 'English', 'time': 8}],
'2022_02': [{'user': 'A', 'course': 'Math', 'time': 4},
{'user': 'A', 'course': 'Physics', 'time': 2},
{'user': 'B', 'course': 'History', 'time': 8},
{'user': 'B', 'course': 'Math', 'time': 7},
{'user': 'C', 'course': 'Biology', 'time': 9},
{'user': 'C', 'course': 'English', 'time': 5}]}
```
可以看到,每个年月份的数据已经按照用户进行了合并,并且同一用户在同一门课程中的时间也已经合并。
阅读全文