【发布时间】:2018-03-30 22:06:52
【问题描述】:
这是我的代码:
def inverse_dict(my_dict):
new_dict = {}
new_key = ''
for new_value in my_dict:
new_list = [new_value]
new_key = my_dict[new_value]
if new_key in new_dict:
new_list.append(new_dict[new_key])
new_list = sorted(new_list)
new_dict[new_key] = new_list
return new_dict
还有我的主要:
def main():
print(inverse_dict({'cc': 'dd', 'ab': 'cd', 'bb': 'cd'}))
print(inverse_dict({'b': 'd', 'c': 'd', 'a': 'd'}))
我希望我的输入是:
- 第一行 -
{'cd': ['ab', 'bb'], 'dd': ['cc']} - 第二行 -
{'d': ['a', 'b', 'c']}
但是我得到了错误,如果我删除了我对列表进行排序的行,我的输入看起来像:
- 第一行 -
{'dd': ['cc'], 'cd': ['bb', ['ab']]} - 第二行 -
{'d': ['a', ['c', ['b']]]}
我能做什么?
【问题讨论】:
-
当您尝试对
new_list进行排序时,您可能混合了字符串和列表。 -
使用
extend而不是append。 -
Python 3 不会试图猜测您想如何比较完全不同类型的对象。您是否希望所有列表都出现在所有字符串之前?毕竟所有的字符串?或者将字符串视为单元素字符串列表?无论您想要什么,您都可以为其编写一个关键函数并将其传递给
sorted,但您必须先决定您想要什么。 -
误导性标题...
标签: python python-3.x python-2.7 list dictionary