如何将此format( [(9.0, 'artificial intelligent branch'), (4.0, 'soft computing'), (4.0, 'six branches')]
中的列表转换为类似[(9.0: 'artificial intelligent branch'), (4.0: 'soft computing'), (4.0: 'six branches')]
的字典以及如何打印字典的键?
这是创建字典的代码
lst = [(9.0, 'artificial intelligent branch'), (4.0, 'soft computing'), (4.0, 'six branches')]
dic = {key: value for key, value in lst}
然而,这不是最佳的。如果我们现在打印lst
,我们得到
{9.0: 'artificial intelligent branch', 4.0: 'six branches'}
这是因为我们有两个4.0
值,它们互相覆盖。解决方案可能是简单地交换键和值:
lst = [(9.0, 'artificial intelligent branch'), (4.0, 'soft computing'), (4.0, 'six branches')]
dic = {key: value for value, key in lst}
然后我们得到
{'artificial intelligent branch': 9.0,
'soft computing': 4.0,
'six branches': 4.0}
哪个可能会更好,具体取决于您的需求。
另一个解决方案可能是
dic = {}
for key, value in lst:
if key in dic:
dic[key].append(value)
else:
dic[key] = [value]
这将为每个键创建一个列表,并给出结果
{9.0: ['artificial intelligent branch'],
4.0: ['soft computing', 'six branches']}
这可以简化一下:
for key, value in a:
b[key] = b.get(key, []) + [value]
我们总是将键分配给一个新值,但是我们将新值设置为已经存在的新值列表。我们使用字典的.get
方法来提供默认值,以防b[key]
不存在。
通过字典迭代可以这样做
for key, value in dic.items().
print(key, value)
# Or
for key in dic.keys():
print(key)
# Or
for value in dic.values():
print(value)