2017-01-24 2 views
-2

так кажется, что я имел подсписокПервое значение в списке равно первому значению в другом списке. python2.7

exList = [ 
    ['green', 'apple', 'NO'], 
    ['red','apple','nO'], 
    ['red','watermellon','no'], 
    ['yellow','honeymellon','yes'] 
] 

поэтому я хочу, чтобы проверить, если первое значение в списке равно первое значение в другом списке.

так что exlist является подсписным, у него есть 4 разных списка. Поэтому я хочу проверить первое значение в первом списке и проверить, равно ли оно другому значению в другом списке. Итак, Green является первым значением, а зеленый не используется в другом списке, поэтому он должен возвращать False. Но если зеленый был использован в других списках, он должен вернуть True.

for i in exList: 
    if i+1[1] == i-[1]: 
     print True 

Как я могу это сделать?

+0

Вы хотите проверить, что? – khelwood

+0

поэтому exlist - это подсписок, у него есть 4 разных списка. Поэтому я хочу проверить первое значение в первом списке и проверить, равно ли оно другому значению в другом списке. Итак, Green является первым значением, а зеленый не используется в другом списке, поэтому он должен возвращать False. Но если зеленый был использован в других списках, он должен вернуть True. – ylimes

ответ

0

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

check = [True if (exList[0][0] in subList) else False for subList in exList[1:]] 

или вы можете сделать это в цикле, если вы не понимаете, список понимания:

check = [] 
checkItem = exList[0][0] #Pulls the value for the first item in the first list of exList 
for i in range(1,len(exList)): #Starts at 1 to skip the first list in exList 
    check.append(checkItem in exList[i]) 
print check 

И если вам нужно перебрать каждый элемент в первом списке, чтобы проверить:

for eachListItem in exList[0]: 
    print "Search Text: %s" % (eachListItem) 
    curCheck = [True if (eachListItem in subList) else False for subList in exList[1:]] 
    print "Search Results: %s" % (True in curCheck) 

. Примечание: ни одно из этого не будет учитывать пробелы в строке или несогласованных случаях (IE, так и нет два различных значения и возвращал ложь Точно так же «нет» и «Нет» разные)

+0

Как я могу заставить его игнорировать случаи? для второго, так как это легко понять. – ylimes

+0

Я бы рекомендовал заглянуть в модуль 're' для сложных сравнений. Я привел пример, который вы можете здесь упомянуть: https://repl.it/FTcV/4 – Michael

+0

большое спасибо – ylimes