ywa*_*wan 3 python dictionary python-3.x
我使用的是Python 3.6.我写了下面的代码,它是一个for循环:
编辑:当我写下var时我犯了一个错误,所以我在这里重新键入它.感谢@Ender Look !!
l = [['a','1'], ['a','2'], ['a','3']]
d = {}
for i in l:
d[i[0]] = d.get(i[0], '') + '\t' + i[1]
print (d)
Run Code Online (Sandbox Code Playgroud)
所以,结果就是我想要的: {'a':'\ t1\t2\t3'}
然后我重构上面的代码作为理解:
dict2 = {}
dict2 = {i[0]: dict2.get(i[0], '') + '\t' + i[1] for i in l}
print(dict2)
我虽然他们应该返回相同的输出.但是dict2是:
{'a':'\ t3'}
我想知道我的词汇理解是什么问题?非常感谢!
你不一定需要在这里使用理解.您可以利用defaultdict从集合:
>>> from collections import defaultdict
>>> d = defaultdict(str)
>>> for li in l:
... d[li[0]] += f'\t{li[1]}'
...
>>> d
defaultdict(<class 'str'>, {'a': '\t1\t2'})
Run Code Online (Sandbox Code Playgroud)