如何在字典中找到每个值的阶乘?

2024-09-29 18:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

假设用户输入了一个包含重复字母的单词。每个重复的字母都将以其计数的阶乘进行存储。e、 g.假设用户输入是talahasee,它有3个a和2个e,如果我们取它们的阶乘,它们将是6和2。其余字母将为1,因为它们只出现一次

如何在字典中找到每个值的阶乘

我当前的代码如下所示

def pwr():
    word = input("Word: ")
    n = len(word)
    fn = math.factorial(n)
    x = Counter(word)
    for i in x:
        no = math.factorial(i.values())
        print(no)

如果你想知道的话,我正在制作一个程序,这个程序遵循一个重复公式的排列


Tags: no代码用户程序input字典def字母
1条回答
网友
1楼 · 发布于 2024-09-29 18:36:50

正如我所问的,您的意思是在python字典中查找每个元素的阶乘。Factorize与您在示例代码中使用的factorial不同。因式分解意味着找到一个数的素因子

无论如何,我相信以下代码将满足您的需要:

from collections import Counter
from math import factorial

def dict_factorial(input_string):
    fd = {}
    d = dict(Counter(input_string))
    for k in d:
        fd[k] = factorial(d[k])
    return fd
print(dict_factorial("Tallahassee"))

输出:{'t':1,'a':6,'l':2,'h':1,'s':2,'e':2}

此外,这个词的正确拼写是佛罗里达州的“塔拉哈西”:

相关问题 更多 >

    热门问题