2017-02-17 5 views
0

2リストから最初のリストを生成します。 'キーに。リストの長さは異なる場合があります。値がNoneの場合は2リストから辞書を生成する必要があります。 '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', 6:'None', 7: 'None'}

答えて

1

チェック印刷したい{'1': 'andrey', 2: 'kapar', 3: 'isa', 5: 'murat'}

  • を印刷します:長さがない場合は

    >>> 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をリストにしてfolloを行うことです前all_listでの翼あなたのforループ

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

    おかげで、答えのために、私はちょうど実現はい、Noneを追加しないではないだろうというジップです –

    0

    長さに互換性がない場合は簡単で、愚かなソリューション

    for i in xrange(len(r1)): 
        try: 
         d[r1[i]] = r2[i] 
        except IndexError: 
         d[r1[i]] = 'None' 
    
    関連する問題