python - 三重嵌套字典理解?

标签 python dictionary list-comprehension

假设我有一个pandas Series,像这样:

import pandas as pd
s = pd.Series(["hello go home bye bye", "you can't always get", "what you waaaaaaant", "apple banana carrot munch 123"])

我想创建一个字典,其中单个字符作为键,它们的频率作为值。在 collections.Counter 的帮助下,过去很容易为单词创建这些词典:

from collections import Counter
c = Counter(word for row in s for word in row.lower().split())

但是,我现在正在尝试存储单个字符,并且在使用三重嵌套字典理解时遇到了一些问题。这是我拥有的:

c = Counter((letter for letter in word) for word for row in s for word in row.lower().split())

这给我一个语法错误。我怎样才能在一行中制作等同于以下 for 循环的内容?

d = {}
for row in s:
    for word in row.lower().split():
        for letter in word:
            d[letter] += 1

最佳答案

我觉得你可以用

Counter([j for i in s for j in i])
Counter({'a': 16, ' ': 13, 'e': 6, 'o': 6, 'n': 5, 't': 5, 'y': 5, 'h': 4, 'l': 4, 'c': 3, 'b': 3, 'u': 3, 'w': 3, 'g': 2, 'm': 2, 'p': 2, 'r': 2, "'": 1, '1': 1, '3': 1, '2': 1, 's': 1})

获取单个字符数。

关于python - 三重嵌套字典理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020492/

相关文章:

python - 我如何从另一个 python 脚本中获取导入

python - Django JSONField 不保存 0 值

python - 每个 flask View 功能有多个路线是不好的做法吗?

python - 列表理解的优雅总结

python - 如何迭代具有重复值的列表?

python - 创建重复N次的单项列表

python - 为什么我不能从Windows上的pip下载我的软件包的最新版本?

Java着色字符GUI

ios - Swift - 使用 [String : [String: String]] 的字典填充 uitableview

python - 将元组字典转换为 numpy 矩阵