Skip to main content
 首页 » 编程设计

python之具有 1 个和 2 个可迭代元素的列表的字典理解

2025年05月04日15thcjp

我正在尝试学习/理解词典理解并有以下列表:

my_list = [ ['sam', '99912222'],  
          ['tom', '11122222'],  
          ['harry', '12299933'],  
          ['sam'],  
          ['edward'],  
          ['harry'] ] 

此列表包含具有 1 和 2 个可迭代对象、名称和数字的元素。

如何使用 Dictionary Comprehension 创建以下词典?

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} 

但我似乎想不出正确的语法。帮忙?

请您参考如下方法:

差不多了:

dic2 = {x[0]:x[1] for x in my_list if len(x) == 2} 

对于 dict1,不可能有一个带有重复键的字典。