如何将生成每周情绪列表的for循环改写为Python list comprehension?
解决方案
你现有的for循环可以直接改写成列表推导式,逻辑和原有代码完全等价,无需调整业务规则:
mood_options = ["awful", "bad", "meh", "good", "amazing"] weekly_scores = [2, 4, 1, 3, 4, 2, 4] # 列表推导式实现,和原有for循环功能完全一致 weekly_moods = [mood_options[score-1] for score in weekly_scores]
运行后得到的weekly_moods结果为 ['meh', 'amazing', 'bad', 'good', 'amazing', 'meh', 'amazing'],和原有代码输出完全相同。
如果担心score值超出mood_options的索引范围引发报错,可以在推导式中增加条件过滤:
# 增加索引合法性判断的写法 weekly_moods = [mood_options[score-1] for score in weekly_scores if 1 <= score <= len(mood_options)]
内容的提问来源于stack exchange,提问作者Djanger
相关产品推荐
相关产品推荐

