python 用 map函数实现sql case when
时间: 2023-09-11 20:04:35 浏览: 84
SQL中的CASE WHEN语句可以使用Python中的map函数来实现。下面是一个示例:
假设我们有一个包含以下数据的列表:
```
data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 20},
{'name': 'David', 'age': 35}
]
```
我们想要根据年龄将这些人分为三个年龄段:18岁以下为“少年”,18岁至30岁为“青年”,30岁以上为“中年”。
我们可以使用Python中的map函数来实现这个功能,代码如下:
```
def age_range(age):
if age < 18:
return '少年'
elif age < 30:
return '青年'
else:
return '中年'
result = map(lambda x: {'name': x['name'], 'age_range': age_range(x['age'])}, data)
for r in result:
print(r)
```
输出结果如下:
```
{'name': 'Alice', 'age_range': '青年'}
{'name': 'Bob', 'age_range': '中年'}
{'name': 'Charlie', 'age_range': '青年'}
{'name': 'David', 'age_range': '中年'}
```
上面的代码中,我们定义了一个名为age_range的函数,它根据传入的年龄返回年龄段。然后,我们使用lambda函数将这个函数应用到每个人的数据中,并将结果存储在一个新的列表中。最后,我们遍历这个新列表并输出结果。
这个示例展示了如何使用Python中的map函数实现SQL中的CASE WHEN语句。我们使用map函数将一个函数应用到列表中的每个元素,并将结果存储在一个新的列表中。这个方法可以用于许多其他情况,例如根据某些条件过滤数据或将数据转换为其他格式。
阅读全文