поиск заданного списка из хранилища / банка списков - PullRequest
0 голосов
/ 01 декабря 2018

Я пробую небольшой проект pep на python 3.7, но, кажется, не могу заставить это работать.Я хочу найти данный список, который хранится в объекте, содержащем много списков.Я уверен, что мое кодирование далеко, так как я довольно новичок в этом!

my_choice = ["a", "b", "c"]
reciepe1 = [["a", "b", "c"], "d", "e", "f"]
reciepe2 = ["x", "y", "z"]
menu = [reciepe1, reciepe2]
for my_choice in menu:
    if my_choice in reciepe1:
        print(reciepe1)
    elif my_choice in reciepe2:
        print(reciepe2)  

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Один из методов - использовать словарь следующим образом:

#  possible successful my_choices are from --> ["a", "b", "c"], "d", "e", "f", "x", "y", "z",
#  In case your my_choice is --> "a", then you have to **flatten** the list of all reciepe's.
my_choice = ["a", "b", "c"]

#create a dictionary as follows:
reciepe_final = {"reciepe1": [["a", "b", "c"], "d", "e", "f"],
                "reciepe2" : ["x", "y", "z"]}

#loop through the key and values of each reciepe
for k, i in reciepe_final.items():
    #if my_choice found in values print the key (reciepe(n))
    if my_choice in i: print (k)

#result --> reciepe1

Если вы хотите сгладить список, то либо выполните поиск в стеке переполнения / google, либо сообщите мне, я предоставлю вам код.

0 голосов
/ 01 декабря 2018

Ваша логика была почти правильной, вы просто перепутали переменные и вам на самом деле не нужны elif:

my_choice = ["a", "b", "c"]
recipe1 = [["a", "b", "c"], "d", "e", "f"]
recipe2 = ["x", "y", "z"]
menu = [recipe1, recipe2]
for recipe in menu:
    if my_choice in recipe:
        print(recipe)

выходы

[['a', 'b', 'c'], 'd', 'e', 'f']
...