Есть ли какой-нибудь способ получить имя списка после того, как была найдена строка в нем? - PullRequest
2 голосов
/ 07 февраля 2020

Прежде всего, полный python / программирование newb ie здесь, поэтому я прошу прощения, если это глупый вопрос. Кроме того, извините за неудобное название.

Я пытаюсь адаптировать верхний ответ в этом вопросе: Проверьте, содержит ли элемент списка Python строку внутри другой строки . Однако я не уверен, что то, что я пытаюсь достичь, возможно даже.

list6 = [list1,list2,list3,list4,list5]

'list6' - это список, содержащий несколько других списков. Затем эту строку можно использовать, чтобы проверить, является ли «Cool» строкой в ​​любом из этих списков:

if any("Cool" in s for s in list6):

Мой вопрос: если предположить, что «Cool» присутствует только в «list1», возможно ли это? получить и сохранить 'list1', чтобы использовать другие значения в этом списке? Например:

if "Cool" is in any list in list6:
    list = list with "Cool"
    something = list[4]

Ответы [ 2 ]

3 голосов
/ 07 февраля 2020

Вы можете использовать next с выражением генератора (Спасибо ShadowRanger)

next(sublist for sublist in list6 if "Cool" in sublist)

или можете использовать следующий с итератором, таким как filter получить первый элемент, содержащий элемент

next(filter(lambda x: "Cool" in x, list6))
0 голосов
/ 07 февраля 2020

Вы должны будете использовать for -l oop для отдельной проверки каждого подсписка, а затем вы можете сохранить его или получить другие элементы из этого подсписка.

for sublist in list6:
    if "Cool" in sublist:
        something = sublist[4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...