for文で生成した文字列をタプルに格納する方法

投稿者: Anonymous

初めて質問させていただきます。
for文で生成した文字列をタプルに格納し、辞書型と結び付けたいです。

factories = ['A', 'B', 'C', 'D']
shops = ['1', '2', '3', '4', '5']

cost      = ( 8, 10, 12, 16, 20,
             12,  8,  6, 10, 16,
             18,  7,  4,  3,  4,
             12, 10, 12, 16, 20 )

for f in factories:
        for s in shops:
                root = f + s
                print(root)

文字列の生成までは終わったのですが…ここから先で躓いています><

[追記]
keyはroot, valueはcostにして、変数patternに代入したいです。
以下のようになるのが理想です

pattern = { 'A1': 8, 'A2': 10, 'A3': 12 ... D5: 20 }

お願いします。

解決

一応ここまでしたいかを別にすれば dict で内包表記を使うこともできます.

#!/usr/bin/env python3
from itertools import product
factories = ['A', 'B', 'C', 'D']
shops = ['1', '2', '3', '4', '5']

costs      = ( 8, 10, 12, 16, 20,
             12,  8,  6, 10, 16,
             18,  7,  4,  3,  4,
             12, 10, 12, 16, 20 )


d = {f+s : cost
         for ((f,s), cost) in zip(product(factories,shops), costs)}
print(d)
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *