0

我正在寻找一种将列表转换为字典的简单方法。我有一个简单的清单:

leet =['a','4','b','l3','c','(','d','[)','e','3','g','6','l','1','o','0','s','5','t','7','w','\/\/']

我想轻松地将其转换为字典。我试过使用 defaultdict 但我不太明白它在做什么(我在之前的答案中找到了这段代码):

>>> from collections import defaultdict
>>> dic = defaultdict(list)
>>> for item in leet:
    key ="/".join(item[:-1])
    dic[key].append(item[-1])


>>> dic
defaultdict(<class 'list'>, {'\\:/:\\': [], '': ['a', '4', 'b', 'c', '(', 'd', 'e',    '3', 'g', '6', 'l', '1', 'o', '0', 's', '5', 't', '7', 'w'], 'l': ['3'], '[': [')'], '\\///\\': ['/']})

最终,我想将 txt 文件中的数据(逐行)读入列表并转换为简单程序其余部分的字典。我正在寻找一种直接的方法来实现这一目标。

谢谢

4

2 回答 2

2

不确定您是否使用 a 走在正确的道路上defaultdict,通过成对分组转换为 dict ,然后dict.get在没有匹配键时使用来满足:

leet =['a','4','b','l3','c','(','d','[)','e','3','g','6','l','1','o','0','s','5','t','7','w','\/\/']

lookup = dict(zip(*[iter(leet)] * 2))
text = 'how are you?'
blah = ''.join(lookup.get(ch, ch) for ch in text)
# h0\/\/ 4r3 y0u?
于 2013-08-21T09:53:14.740 回答
-1
components_dict = dict(((lambda y: y['id'])(y), y) for y in components)

组件对象如下:

{"id":1234, "name":"xxx"}
于 2017-08-19T18:41:26.813 回答