2017-06-30 24 views
0

が含まれている場合、私は、次のキーと値を持つ辞書を持っている辞書を構成するすべてのリストを取得する方法:のPython 3:を検索し、それらが特定の文字列

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

言って、私がしたい各キーの取得するには、 'ホット' の文字列が含まれているすべての値を保つ:

Pasta : [['Tomato', 'hot'], ['Cheese','hot']] 
Cookies : [['Chocolate', 'Nuts', 'hot'], ['Chocolate', 'Pistachio', 'hot']] 
Salad : [] 

答えて

0
{key: [value for value in values if 'hot' in value] for (key, values) in my_dict.items()} 
+2

あなたが実際にそれを投稿する前に、あなたのコードをチェックすることができます。 –

+0

申し訳ありませんが変更されました – milo

+0

ありがとうございました!!!! :D – COxf

2
dictionary = { k : [ x for x in v if "hot" in x ] for k, v in dictionary.items() } 
+0

ありがとうございます!それは完璧に働いた! – COxf

0

はこれを試してみてください。

#create function to get hot or cold menu items 
def get_menu(dictionary,temp): 
    temp_dict = {} 
    for k,v in dictionary.items(): 
     temp_dict[k] = [] 
     for sl in v: 
      if temp in sl: 
       temp_dict[k].append(sl) 
    return temp_dict 

menu = {'Pasta' : [['Tomato', 'hot'],['Vegetables', 'Lemon', 'cold'],['Cheese','hot']], 
    'Cookies' : [['Chocolate', 'Nuts', 'hot'], ['Chocolate', 'Pistachio', 'hot']], 
    'Salad' : [['Mushrooms', 'Lettuce', 'cold'], ['Lettuce', 'Fruits', 'cold']]} 
#get hot menu items 
hot_menu = get_menu(menu,"hot") 
#get cold menu items 
cold_menu = get_menu(menu,"cold") 

#print results 
print ("\n\n**** Hot Menu ****") 
for key,value in hot_menu.items(): 
    if not value: 
     continue 
    print ("-"*25) 
    print (key+": ") 
    for sublist in value: 
     sublist.remove("hot") 
     print (" | "+" ".join(sublist)) 

print ("\n\n**** Cold Menu ****") 
for key,value in cold_menu.items(): 
    if not value: 
     continue 
    print ("-"*25) 
    print (key+": ") 
    for sublist in value: 
     sublist.remove("cold") 
     print (" | "+" ".join(sublist)) 

出力:

**** Hot Menu **** 
------------------------- 
Cookies: 
| Chocolate Nuts 
| Chocolate Pistachio 
------------------------- 
Pasta: 
| Tomato 
| Cheese 


**** Cold Menu **** 
------------------------- 
Pasta: 
| Vegetables Lemon 
------------------------- 
Salad: 
| Mushrooms Lettuce 
| Lettuce Fruits 
関連する問題