如何使用map(lambda)实现带有三个条件的情感标签映射?
用map+lambda实现情感标签映射
你的原lambda表达式存在语法错误,Python不支持连续省略else的if写法,需要调整条件表达式结构。以下是两种符合要求的实现方式:
方式一:嵌套三元表达式
直接在lambda中用嵌套三元表达式完成多条件判断:
# 假设数据集为列表字典格式,示例如下: dataset = [ {'sentiment': 'positive'}, {'sentiment': 'negative'}, {'sentiment': 'neutral'} ] result = list(map(lambda example: {'labels': 1 if example['sentiment'] == 'positive' else 2 if example['sentiment'] == 'negative' else 0}, dataset))
执行后result输出为:
[{'labels': 1}, {'labels': 2}, {'labels': 0}]
方式二:结合字典映射(可读性更强)
如果后续条件扩展,用字典映射逻辑更清晰,同样可结合lambda实现:
sentiment_map = {'positive': 1, 'negative': 2, 'neutral': 0} result = list(map(lambda example: {'labels': sentiment_map[example['sentiment']]}, dataset))
该方式输出与方式一完全一致,代码维护性更高。
内容的提问来源于stack exchange,提问作者pouchewar
相关产品推荐
相关产品推荐

