python - 在列表字典上执行循环的 Pythonic 方式
问题描述
这段代码有效,但我想知道是否有更 Pythonic 的方式来编写它。
word_frequency
是一个列表字典,例如:
word_frequency = {'dogs': [1234, 4321], 'are': [9999, 0000], 'fun': [4389, 3234]}
vocab_frequency = [0, 0] # stores the total times all the words used in each class
for word in word_frequency: # that is not the most elegant solution, but it works!
vocab_frequency[0] += word_frequency[word][0] #negative class
vocab_frequency[1] += word_frequency[word][1] #positive class
有没有更优雅的方式来编写这个循环?
解决方案
我不确定这是否更像 Pythonic:
>>> word_frequency = {'dogs': [1234, 4321], 'are': [9999, 0000], 'fun': [4389, 3234]}
>>> vocab_frequency = [sum(x[0] for x in word_frequency.values()),
sum(x[1] for x in word_frequency.values())]
>>> print(vocab_frequency)
[15622, 7555]
替代解决方案reduce
:
>>> reduce(lambda x, y: [x[0] + y[0], x[1] + y[1]], word_frequency.values())
[15622, 7555]
推荐阅读
- youtube - YouTube 播放列表项 API 已发布在字段说明中
- swift - 使用 FetchedResults 填充 SwiftUI 选择器的最佳实践
- typescript - 如何在 Vue3 中使用 TypeScript 为 ref 定义类型(绑定模板)?
- databricks - 无法通过 Azure DataBricks 执行 CTE 查询
- listview - 需要帮助在 Sharepoint 中建立风险登记册 :)
- select - 使用事件和标识在 javafx 中选择和突出显示文本
- kotlin - 如何使用暴露的 kotlin 调用 sequence.nextVal
- json - 为每个匹配返回多个匹配的顶级 JSON 对象
- javascript - 如何识别 JavaScript 客户端上的 SignalR 核心集线器错误?
- java - “mvn dependency:tree” 返回无法解析项目 com 的依赖关系。* 被缓存在本地仓库中……