为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的字典构造

Python中的字典构造

慕姐8265434 2022-10-06 18:58:05
尝试在 Python 中构建一个从给定序列构造字典的函数。知道字符串是不可变的,并且字典是由key: value对组成的(键是不可变的,而值是可变的),我选择采用给定的序列并扫描字母是否存在(低位和高位),以便将其应用于键并计数它的频率,以便将其应用于适当的值。到目前为止,我的主要想法如下,高度赞赏支持:import stringalphabet = string.ascii_letterssentence = 'Check Sentence'd = dict()def dictionary_check(input):    for i in alphabet:        if i in input is True:            #left empty for manipulation            return        else:            returndictionary_check(sentence)print(d)样本输入:'Any string'输出:{"A":1, "n":2, "y":1, "s":1, "t":1, "r":1, "i":1, "g":1}
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

像这样的东西:


In [474]: from collections import Counter                                                                                                                                                                   


In [475]: sentence = 'Check Sentence'                                                                                                                                                                       


In [476]: Counter(sentence)                                                                                                                                                                                 

Out[476]: 

Counter({'C': 1,

         'h': 1,

         'e': 4,

         'c': 2,

         'k': 1,

         ' ': 1,

         'S': 1,

         'n': 2,

         't': 1})

上面的Counter对象已经是一个字典。

在 OP 发表评论后,这里有一个自定义函数来做同样的事情:

In [497]: def construct_dict(text): 

     ...:     d = {} 

     ...:     for i in text: 

     ...:         if i in d: 

     ...:             d[i] = d[i] + 1 

     ...:         else: 

     ...:             d[i] = 1 

     ...:     return d 

     ...:                                                                                                                                                                                                   


In [498]: construct_dict(sentence)                                                                                                                                                                           

Out[498]: {'C': 1, 'h': 1, 'e': 4, 'c': 2, 'k': 1, ' ': 1, 'S': 1, 'n': 2, 't': 1}

要删除空格,请执行以下操作:

In [507]: construct_dict(sentence.replace(' ',''))                                                                                                                                                           

Out[507]: {'C': 1, 'h': 1, 'e': 4, 'c': 2, 'k': 1, 'S': 1, 'n': 2, 't': 1}


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信