2014-11-06 3 views
-2

Мне нужно написать часть моего кода, который сканирует вход пользователя, он сначала сканирует каждую группу на входе, а затем, если группа находится в одном из списков, она печатает определенная строка есть лучший способ сделать это, чем таким образом:лучший способ связать ввод с списком

РЭ в inputt.split(): Если с в списке: Print (определенная строка)

есть много списков проверить, есть ли другой способ, чем повторять оператор if для каждого из них?

+1

Вам необходимо предоставить образец ввода и выборки. – merlin2011

+0

Inputt = raw_input (""), код работает, но если мне нужно проверить, как 20 списков, мне нужно написать оператор if 20x, если он печатает другую строку для каждого списка? –

+0

Сопоставьте имя списка с строкой для вывода. Прокрутите список и, если он находится в списке, вытащите строку для печати из карты. – merlin2011

ответ

1

Использование словаря:

lists = {string1:[list1], string2:[list2], ...} 

for item in lists: 
    if input in lists[item]: 
     print(item) 
0

Похоже, вам просто нужно проходным списки. Если в списке есть одна строка, как насчет словаря строки в списке?

string1 = 'a certain string' 
list1 = ['a', 'b', 'c'] 

string2 = 'b certain string' 
list2 = ['d', 'e', 'f'] 

string_list_map = {string1: list1, string2: list2} 

for se in inputt.split(): 
    for the_string, the_list in string_list_map.items(): 
    if se in the_list: 
     print the_string 
+0

То, что я сделал, но так как есть много списков, и в каждом списке есть три строки, я заканчиваю очень длинным циклом –

Смежные вопросы