2014-11-06 51 views
-2

我需要編寫掃描用戶輸入的代碼的一部分,它首先掃描輸入中的每個組,然後如果組在其中一個列表中打印出某些字符串是否有更好的方式來做到這一點不是這樣:將輸入鏈接到列表的最佳方式

硒在inputt.split(): 如果SE在名單: 打印(某些字符串)

有很多名單檢查是否有另一種方法,而不是重複每個人的if語句?

+1

您需要提供樣本輸入和樣本輸出。 – merlin2011 2014-11-06 23:21:29

+0

inputt = raw_input(「」),代碼的工作原理,但如果我需要檢查像20個列表,我是否需要寫if語句20x,如果它打印每個列表不同的字符串? – 2014-11-06 23:25:45

+0

將列表的名稱映射到要輸出的字符串。循環訪問列表,如果它在列表中,則拉出字符串以便將其打印出地圖。 – merlin2011 2014-11-06 23:28:41

回答

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

這就是我做的,但因爲有很多名單,每個列表有三個字符串我結束了一個非常長的循環 – 2014-11-08 10:53:50