gpt4 book ai didi

Python 3.0 替换 Python 2.0 `.has_key` 函数

转载 作者:行者123 更新时间:2023-11-28 21:55:41 34 4
gpt4 key购买 nike

我的程序在 Python 2.0 中运行,但我需要它在 3.0 或更高版本中运行。问题是新的 Python 不再有 .has_key 函数。我需要知道如何解决这个问题,以便它能在新版本中运行。

dictionary = {}

for word in words:
if dictionary.has_key(word):
dictionary[word]+=1
else:
dictionary[word]=1
bonus = {}
for key in sorted(dictionary.iterkeys()):
print("%s: %s" % (key,dictionary[key]))
if len(key)>5: #if word is longer than 5 characters (6 or greater) save to list, where we will get top 10 most common
bonus[key]=dictionary[key]

最佳答案

使用in进行按键测试:

if word in dictionary:

并将.iterkeys()替换为.keys();在这种情况下,一个普通的 sorted(dictionary) 就足够了(在 Python 2 3 中)。

你的代码,用更现代的技术重写得更紧凑一些,用 collections.Counter() 替换 dictionary对象:

from collections import Counter

dictionary = Counter(words)

bonus = {}
for key in sorted(dictionary):
print("{}: {}".format(key, dictionary[key]))
if len(key) > 5:
bonus[key] = dictionary[key]

尽管您也可以使用 Counter.most_common()改为按频率(从高到低)顺序列出键。

您可能想阅读 Python porting guide如果您要将代码从 Python 2 移植到 3。

关于Python 3.0 替换 Python 2.0 `.has_key` 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542132/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com