2017-01-04 4 views
1

私は入力Python:2つのアイテムのリストをユーザーの入力から辞書に値として格納しますか?

A)成分
b)の数値
c)の測定値(例えばTB、カップ)

として取る簡単な食料品のヘルパープログラムを構築しようとしています最終的に必要な項目のリストが返されます。

私は同じ成分を2回入力してから、以前に入力した成分に測定値を加えたいので、ユーザの数値と測定入力をどのようにして2項目のリストを辞書の値として使用して、後で修正してからうまく印刷することができます。

ここでは、メインビット作業を取得するために私の粗試みです:

ingredients = {} 

program_run = True 

while program_run: 
    ingredient = input("Give me an ingredient: ") 
    measurement = input("Unit of measurement? ") 
    howMuch = input("How much? ") 

    ingredients[ingredient] = howMuch 

print(ingredients) 

それでは、どのように私は、「ユーザ入力measurementhowMuch辞書の値として、2項目のリストの形式で格納されるように得ることができます食べ物を食べるようになるので、私は次のようなものになります:

{"coriander": [2, "tsp"], "basil": [.5, "cups"]} 

ありがとう!

+1

リストとして定義するだけです。 – roganjosh

+0

@roganjosh OPが 'try'' except'ステートメントを実行してアプリをクラッシュさせないようにする必要はありますが、私は同意します。 –

+1

@roganjoshキャスティングについての良好な観察。 – floatingpurr

答えて

2

measurementhowMuchの変数からリストを作成し、それを成分dictに保存するといいでしょう。

ingredients = {} 

program_run = True 

while program_run: 
    ingredient = input("Give me an ingredient: ") 
    measurement = input("Unit of measurement? ") 
    howMuch = input("How much? ") 

    ingredients[ingredient] = [howMuch, measurement] 

print(ingredients) 

このようにすれば、よりうまく書式を設定することができます。

ingredients = {} 

program_run = True 

while program_run: 
    ingredient = input("Give me an ingredient: ") 
    symbol = input("Unit of measurement? ") 
    measurement = input("How much? ") 

    ingredients[ingredient] = [measurement, symbol] 

print(ingredients) 
+0

私の太った指に気づいてくれてありがとう。 –

1

まあ、ingredients[ingredient]辞書ingredientsにおけるキーingredientの値を表しています。値がリストであることを望むので、次のようなことができます:

ingredients = {} 

program_run = True 

while program_run: 
     ingredient = input("Give me an ingredient: ") 
     measurement = input("Unit of measurement? ") 
     howMuch = input("How much? ") 

     # cast measurement to float and create a list from user inputs 
     details = [float(measurement), howMuch] 

     # add the list to the dict 
     ingredients[ingredient] = details 
関連する問題