Здесь у нас есть список строк с именем list_strings `
list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]
Если задано значение "john" и можем ли мы получить все строки до john, вывод должен выглядеть так!`
result = ["none", "sandy", "harry", "debra]
3 ответа
Вы можете использовать простой цикл for
:
list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]
result = []
for i, j in enumerate(list_strings):
if j == "john":
if i:
result.append(list_strings[i-1])
else:
result.append(None)
[None, 'sandy', 'harry', 'debra']
Вот как вы можете использовать встроенный метод zip
:
list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]
s = "john"
print([i for i, j in zip(list_strings[:-1], list_strings[1:]) if j == s])
Выход:
['sandy', 'harry', 'debra']
Чтобы включить "none"
, когда первая строка в списке "john"
, вы можете сделать:
list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]
s = "john"
result = []
if list_strings[0] == "john":
result.append("none")
for i, j in zip(list_strings[:-1], list_strings[1:]):
if j == s:
result.append(i)
print(result)
Выход:
['none', 'sandy', 'harry', 'debra']
Существует, наверное, тысяча способов сделать это. Можно использовать понимание списка и перечислять как
def get_before(search_name:str, names:list[str]) -> list[str]:
return [names[i-1] if i > 0 else 'none' for i, name in enumerate(names) if name == search_name]
get_before('john', list_string)
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.