#python #list
#python #Список
Вопрос:
Допустим, у меня есть 2 списка:
a=['LOL','GG','rofl']
b=['5 KEK muh bobo LOL', 'LOL KEK bobo bobo GG']
Как мне проверить, находится ли первый элемент в a в первом элементе b?
Ответ №1:
Только это:
a[0] in b[0] # will return True or False
может быть, вы хотите проверить их все:
set(i for i in a for j in b if i in j)
или
{i for i in a for j in b if i in j} #Python 2.7
Ответ №2:
Python на самом деле очень надежный. Вы можете просто сделать.
a[0] in b[0]
Ответ №3:
Если вам нужно только знать, есть ли она в строке или нет:
if a[0] in b[0]: pass
Однако проблема в том, что оба из них вернут true:
if "LOL" in "a b LOL c": pass
if "LOL" in "a b xxLOLxx c": pass
Итак, если вы заботитесь о словах и простом присутствии, если ваши разделители согласованы:
if a[0] in b[0].split(" "): pass
Если вам нужно знать, какая позиция слова:
idx = b[0].split().index(a[0]) # note, throws a ValueError if not in the list
Если вам нужно знать позицию в строке:
idx = b[0].find(a[0]) # returns -1 if not found
Если вы хотите знать, находится ли каждый элемент из a в соответствующем элементе b (игнорирует дополнительные записи в любом списке):
[(i[0] in i[1]) for i in zip(a, b)] # to check for simple membership
[(i[0] in i[1].split()) for i in zip(a, b)] # to check for whole words
Ответ №4:
Вы можете просто сделать:
a[0] in b[0]
который вернет значение True, если первый элемент a может быть найден в первом элементе b, в противном случае он вернет значение False .