将list中某个字段重复的值筛选到一个新list中
时间: 2023-10-08 10:04:02 浏览: 89
可以使用Python中的字典来实现这个功能,具体步骤如下:
1. 定义一个空字典 `temp_dict`。
2. 遍历原始列表 `orig_list` 中的每个元素,在遍历过程中进行以下操作:
- 获取元素中需要筛选的字段的值 `key`。
- 判断字典 `temp_dict` 中是否存在键为 `key` 的项,若不存在,则创建一个键为 `key`,值为 `[]` 的项。
- 将元素添加到键为 `key` 的项的值中。
3. 遍历字典 `temp_dict` 中的每个项,将值中长度大于1的项添加到新列表 `new_list` 中。
下面是一个示例代码:
```python
orig_list = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': 25}, {'name': 'David', 'age': 30}]
temp_dict = {}
# 遍历原始列表并将元素按照字段值添加到字典中
for elem in orig_list:
key = elem['age']
if key not in temp_dict:
temp_dict[key] = []
temp_dict[key].append(elem)
# 遍历字典并将值中长度大于1的项添加到新列表中
new_list = []
for key, val in temp_dict.items():
if len(val) > 1:
new_list.extend(val)
print(new_list)
```
输出结果为:
```
[{'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'David', 'age': 30}]
```
在这个示例中,我们以年龄作为筛选字段,将年龄相同的元素筛选到一个新列表中。你可以根据需要修改示例代码来适应你自己的数据结构和筛选条件。
阅读全文