【发布时间】:2019-03-12 09:23:33
【问题描述】:
我正在努力学习/理解字典理解并有以下列表:
my_list = [ ['sam', '99912222'],
['tom', '11122222'],
['harry', '12299933'],
['sam'],
['edward'],
['harry'] ]
此列表包含具有 1 个和 2 个可迭代对象、名称和数字的元素。
使用词典理解,如何创建以下词典?
dic1 = {'sam':'99912222',
'tom':'11122222',
'harry' :'12299933',
'sam':'',
'edward':'',
'harry':''}
dic2 = {'sam':'99912222',
'tom':'11122222',
'harry' :'12299933'}
如果列表只包含具有两个元素的可迭代对象,这将起作用:
dic_all_iterables = {k:v for k,v in my_list}
我尝试了以下变体但没有运气:
dic2 = {k:v for k,v in my_list if not v is None}
#and
dic2 = {k:(v if not v is not none else '') for k,v in my_list}
#and
dic2 = {k:v for k,v in my_list if len(x)>1 in x for my_list}
但我似乎想不出正确的语法。帮忙?
【问题讨论】:
-
对于
dic1,您不能有两个相同的键sam和harry。
标签: python python-3.x dictionary-comprehension