2017-11-26 8 views
0

のミックスのための辞書充填:私は私は次の形式で辞書を移入したいint型とstr

columns=[14,116] 
spaces = {'A':[int(i) for i in range(0,columns[0])], 'B': [int(i) for i in range(0,columns[1])]} 

のみcolsの[14116]場合は簡単だが、COLSが持っている場合、私はここに、たとえば、問題を取得しますcols = [14,16,117,18,180,190]です。

alphabet=['A','B','C','D','E','F'] 
columns=[14,16,117,18,180,190] 
spaces = dict(zip(alphabet, [int(i) for i in range(0,columns)])) 

をしかし、私は列を置くのアイデアを持っていない[0]、列は[1]のzip

内部の予想される出力:これを解決するために、私はこのコードを試してみました

namespaces = {'A':[int(i) for i in range(0,cols[0])], 
        'B': [int(i) for i in range(0,cols[1])], 'C': [int(i) for i in range(0,cols[2])], and so on...} 

BTW、上記のエラーは、エラーをスローします:

range()期待される整数の終わりの引数、リストを得ました。

+0

をその範囲で私のために 'int型(I) '単純に'レンジ 'です、そうですか? – bipll

答えて

2

あなたはzip使用することができます。

alphabet=['A','B','C','D','E','F'] 
cols=[14,16,117,18,180,190] 
new_dict = dict(zip(alphabet, cols)) 

出力:

{'A': 14, 'C': 117, 'B': 16, 'E': 180, 'D': 18, 'F': 190} 

編集:range機能使用して:あなたが知っている

new_dict = {a:list(range(b)) for a, b in zip(alphabet, cols)} 
+0

こんにちは。私は質問を編集しました。私は間違ったバージョンの質問を投稿しました。ごめんなさい! – Lemma

+0

@補題私の最近の編集をご覧ください。 – Ajax1234

+0

ありがとうございますが、期待される出力は次のようになります:namespaces = {'A':範囲(0、cols [0])内のiの[int(i)]、 'B':[int (0、cols [1])]、 'C':[範囲(0、cols [2])]のiのint(i)...} – Lemma

関連する問題