2017-06-19 6 views
1

をマージ文字列で(オールレシピそれを呼び出す)私はリストのリストを作成していると言う:は、Python 3に同じLAST文字列を含むサブリスト

>>> AllRecipes [['Tomato', 'hot', 'Pasta'], ['Mushrooms', 'Lettuce', 'cold', 'Salad'], ['Chocolate', 'Nuts', 'hot', 'Cookies'], ['Vegetables', 'Lemon', 'cold', 'Pasta'], ['Chocolate', 'Pistachio', 'hot', 'Cookies'], ['Cheese', 'hot', 'Pasta'], ['Lettuce', 'Fruits', 'cold', 'Salad']] 

私は、同じLAST文字列を含むサブリストを結合したいです: 1)(LEN(オールレシピ))の範囲で私を見てみましょう:

AllRecipes[i][-1] == 'Pasta': 
AllRecipes[0] = ['Tomato', 'hot', 'Pasta'] 
AllRecipes[3] = ['Vegetables', 'Lemon', 'cold', 'Pasta'] 
AllRecipes[5] = ['Cheese', 'hot', 'Pasta'] 

2)にそれを回し:

Pasta = { hot: ['Tomato'], hot: ['Cheese'], cold: ['Vegetables', 'Lemon']} 

私の質問がはっきりしないかどうか教えてください。あなたの助け:)

(今私はそれぞれのために作られた辞書を持っていること)質問をフォローアップするために、事前にありがとう:

は私がリストを持っていると言うToCook = []ここでToCook = [「パスタ」、 ' Cookies '、' Salad '] ToCookの各項目について、同等の辞書をどのように取得できますか?

+1

にご期待出力が有効な構造ではありません結果。それを辞書にしようとしていますか?それらのカンマは実際にコロンであるべきですか?また、これをやろうとしましたか?自分のコードを表示できますか? – idjaw

+1

最後の構文は有効なPythonオブジェクトではありません。 –

+0

2回目の検査でも、期待される結果が他のものと一致しません。有効なPython出力を生成することによって、あなたが探しているものが何であるかを確認してください。 – idjaw

答えて

1

これはおそらくdefaultdictで解決するのが最も簡単です:

from collections import defaultdict 

AllRecipes=[['Tomato', 'hot', 'Pasta'], ['Mushrooms', 'Lettuce', 'cold', 'Salad'], ['Chocolate', 'Nuts', 'hot', 'Cookies'], ['Vegetables', 'Lemon', 'cold', 'Pasta'], ['Chocolate', 'Pistachio', 'hot', 'Cookies'], ['Cheese', 'hot', 'Pasta'], ['Lettuce', 'Fruits', 'cold', 'Salad']] 

mydict = defaultdict(list) 

for recipe in AllRecipes: 
    mydict[recipe[-1]].append(recipe[:-1]) 

for key, vals in mydict.items(): 
    print('{} : {}'.format(key,vals)) 

これは

Pasta : [['Tomato', 'hot'], ['Vegetables', 'Lemon', 'cold'], ['Cheese', 'hot']] 
Cookies : [['Chocolate', 'Nuts', 'hot'], ['Chocolate', 'Pistachio', 'hot']] 
Salad : [['Mushrooms', 'Lettuce', 'cold'], ['Lettuce', 'Fruits', 'cold']] 
+0

ありがとう!これは動作します! – COxf

+0

私はToCook = [] ToCook = ['Pasta'、 'C​​ookies'、 'Salad']のToCook、同等の辞書の各項目をどのように取り出すことができますか? ? – COxf

+0

普通の辞書でどうやってやるの? 'mydict ['Pasta']'は例えばあなたにすべてのパスタのレシピを与えるでしょう。与えられた例の最後の2行を見てください。 –

関連する問題