如何将我在此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')]
这样的字典,以及如何打印字典的键?
答案 0 :(得分:0)
这是创建字典的代码
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)