2017-02-17 23 views
0

我從2列表生成一個字典第一個列表是鍵,第二個是值,如果字典中的值是None,我必須寫'None '的關鍵。列表的長度可以不同。從2列表生成字典,如果值爲None,它必須是'key:'None''

def all_list(l1, l2): 
    d = {} 
    for k, v in zip(l1, l2): 
     if v in d is None: 
      d[k] = 'none' 
     d[k] = v  

    return d 




r1 = ['1',2,3,5,6,7] 
r2 = ('andrey','kapar','isa','murat') 



print all_list(r1, r2) 
  1. 它打印{'1': 'andrey', 2: 'kapar', 3: 'isa', 5: 'murat'}
  2. 我想打印{'1': 'andrey', 2: 'kapar', 3: 'isa', 5: 'murat', 6:'None', 7: 'None'}

回答

1

檢查拉鍊是如何工作的:

>>> r1 = ['1',2,3,5,6,7] 
>>> r2 = ('andrey','kapar','isa','murat') 
>>> zip(r1,r2) 
[('1', 'andrey'), (2, 'kapar'), (3, 'isa'), (5, 'murat')] 
0

Python的拉鍊不會添加無是,如果長度不兼容性最簡單的選擇是將r2列入清單並執行下列操作翼all_list之前,你的循環

for i in range(len(l1), len(l2)): 
     l1.append(None) 
    for i in range(len(l2), len(l1)): 
     l2.append(None) 
+0

感謝,對答案,是的,我只是意識到,壓縮不添加無是,如果長度不兼容 –

0

簡單和愚蠢的方案

for i in xrange(len(r1)): 
    try: 
     d[r1[i]] = r2[i] 
    except IndexError: 
     d[r1[i]] = 'None' 
相關問題