回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以我必须编写一个函数,它接收dictionary作为输入参数,并返回输入dictionary的相反值,其中原始字典的值用作返回字典的键,而原始字典的键用作返回字典的值。在</p>
<p>例如,如果函数被调用为</p>
<pre><code>reverse_dictionary({'Accurate': ['exact', 'precise'], 'exact': ['precise'], 'astute': ['Smart', 'clever'], 'smart': ['clever', 'bright', 'talented']})
</code></pre>
<p>那么我的功能应该回来了</p>
^{pr2}$
<p>这是我的职责</p>
<pre><code>def reverse_dictionary(input_dict):
d={}
def countEmpty(dictionario):
count=0
for k,v in dictionario.items():
if(len(dictionario[k])==0):
count+=1
return count
def removo(dicto, dicto2):
for k,v in dicto.items():
#v.sort()
if (len(dicto[k])!=0):
if v[-1] not in dicto2:
dicto2[v[-1].lower()]=[k.lower()]
else:
dicto2[v[-1]].append(k.lower())
dicto[k]=v[:-1]
while countEmpty(input_dict)<len(input_dict):
removo(input_dict,d)
for k,v in d.items():
v.sort()
return d
dicta={'astute': ['Smart', 'clever', 'talented'], 'Accurate': ['exact', 'precise'], 'exact': ['precise'], 'talented': ['smart', 'keen', 'Bright'], 'smart': ['clever', 'bright', 'talented']}
print(reverse_dictionary(dicta))
</code></pre>
<p>这个程序最初起作用了。它颠倒了字典。但是字典中的值需要排序。
我用以下工具测试了该程序:</p>
<pre><code>dicta={'astute': ['Smart', 'clever', 'talented'], 'Accurate': ['exact', 'precise'], 'exact': ['precise'], 'talented': ['smart', 'keen', 'Bright'], 'smart': ['clever', 'bright', 'talented']}
</code></pre>
<p>它有时会返回:</p>
<pre><code>{'keen': ['talented'], 'talented': ['astute', 'smart'], 'clever': ['astute', 'smart'], 'exact': ['accurate'], 'bright': ['smart', 'talented'], 'precise': ['accurate', 'exact'], 'smart': ['astute', 'talented']}
</code></pre>
<p>这是正确答案,但有时也会返回:</p>
<pre><code>{'bright': ['smart', 'talented'], 'exact': ['accurate'], 'talented': ['astute', 'smart'], 'precise': ['accurate', 'exact'], 'clever': ['astute', 'smart'], 'smart': ['astute'], 'keen': ['talented']}
</code></pre>
<p>它的“智能”键缺少“天才”值。即使我没有做任何改变代码。我知道python中的字典实际上没有任何顺序,但是值不应该是一致的吗?为什么会这样?在</p>