У меня есть вложенный список из десятков миллионов списков (я также могу использовать кортежи).Каждый список состоит из 2-7 пунктов.Каждый элемент в списке представляет собой строку из 1-5 символов и встречается не более одного раза в списке.(Я использую отдельные символы в моем примере ниже для простоты)
#Example nestedList:
nestedList = [
['a', 'e', 'O', 'I', 'g', 's'],
['w', 'I', 'u', 'O', 's', 'g'],
['e', 'z', 's', 'I', 'O', 'g']
]
Мне нужно найти, какие списки в моем вложенном списке содержат пару элементов, чтобы я мог что-то делать с этими списками, игнорируя остальные.Это должно быть максимально эффективным.
Я использую следующую функцию, но она кажется довольно медленной, и я просто знаю, что должен быть более разумный способ сделать это.
def isBadInList(bad, checkThisList):
numChecks = len(list) - 1
for x in range(numChecks):
if checkThisList[x] == bad[0] and checkThisList[x + 1] == bad[1]:
return True
elif checkThisList[x] == bad[1] and checkThisList[x + 1] == bad[0]:
return True
return False
Я сделаю это,
bad = ['O', 'I']
for checkThisList in nestedLists:
result = isBadInList(bad, checkThisList)
if result:
doStuffToList(checkThisList)
#The function isBadInList() only returns true for the first and third list in nestedList and false for all else.
Мне нужен способ сделать это быстрее, если это возможно.Я могу использовать кортежи вместо списков или что угодно.