快速为 Python 字典设置新的值

假设有这样一个字典对象:
dict = {\'evaporation\': {\'释义\': \'蒸发\', \'词性\': \'n\'},
        \'carpenter\': {\'释义\': \'木匠\', \'词性\': \'n\'}}

常规做法通常是这样,即先验证 key 是否在字典中,如果不存在,则加入字典:

if \'future\' not in dict:
    dict[\'future\']={\'释义\': \'未来\', \'词性\': \'n\'}

我们可以使用字典的 setdefault() 方法,直接实现上述功能:

dict.setdefault(\'future\', {\'释义\': \'未来\', \'词性\': \'n\'})

运行结果:

{\’evaporation\’: {\’释义\’: \’蒸发\’, \’词性\’: \’n\’}, \’carpenter\’: {\’释义\’: \’木匠\’, \’词性\’: \’n\’}, \’future\’: {\’释义\’: \’未来\’, \’词性\’: \’n\’}}

传递给 setdefault 方法的第一个参数是要检查的键。第二个参数是如果该键不存在需要设置的默认值。如果该键存在,该方法会直接返回键所对应的值:

carpenter = dict.setdefault(\'carpenter\', \'未收入本词典\')
print(\'carpenter = \' + str(carpenter))

运行结果:

carpenter = {\’释义\’: \’木匠\’, \’词性\’: \’n\’}

利用 setdefault 方法,我们可以很方便地统计出,一个字符串所拥有字符出现次数:

content = \'美国国家航空航天局(NASA)局长吉姆·布莱登斯汀日前表示,如果对太空探索技术公司(SpaceX)载人“龙”飞船进行的测试结果是肯定的话,该公司的飞船将最早于明年把美国宇航员送往国际空间站。迄今为止,SpaceX从未将人类送入太空,一直运送的只有货物。\'
count = {}
for char in content:
   count.setdefault(char, 0)
   count[char] = count[char] + 1
print(count)

运行结果:

{\’美\’: 2, \’国\’: 4, \’家\’: 1, \’航\’: 3, \’空\’: 4, \’天\’: 1, \’局\’: 2, \'(\’: 2, \’N\’: 1, \’A\’: 2, \’S\’: 3, \’)\’: 2, \’长\’: 1, \’吉\’: 1, \’姆\’: 1, \’·\’: 1, \’布\’: 1, \’莱\’: 1, \’登\’: 1, \’斯\’: 1, \’汀\’: 1, \’日\’: 1, \’前\’: 1, \’表\’: 1, \’示\’: 1, \’,\’: 4, \’如\’: 1, \’果\’: 2, \’对\’: 1, \’太\’: 2, \’探\’: 1, \’索\’: 1, \’技\’: 1, \’术\’: 1, \’公\’: 2, \’司\’: 2, \’p\’: 2, \’a\’: 2, \’c\’: 2, \’e\’: 2, \’X\’: 2, \’载\’: 1, \’人\’: 2, \’“\’: 1, \’龙\’: 1, \’”\’: 1, \’飞\’: 2, \’船\’: 2, \’进\’: 1, \’行\’: 1, \’的\’: 4, \’测\’: 1, \’试\’: 1, \’结\’: 1, \’是\’: 1, \’肯\’: 1, \’定\’: 1, \’话\’: 1, \’该\’: 1, \’将\’: 2, \’最\’: 1, \’早\’: 1, \’于\’: 1, \’明\’: 1, \’年\’: 1, \’把\’: 1, \’宇\’: 1, \’员\’: 1, \’送\’: 3, \’往\’: 1, \’际\’: 1, \’间\’: 1, \’站\’: 1, \’。\’: 2, \’迄\’: 1, \’今\’: 1, \’为\’: 1, \’止\’: 1, \’从\’: 1, \’未\’: 1, \’类\’: 1, \’入\’: 1, \’一\’: 1, \’直\’: 1, \’运\’: 1, \’只\’: 1, \’有\’: 1, \’货\’: 1, \’物\’: 1}

发表评论

您的电子邮箱地址不会被公开。

Shopping Cart