Я уже давно пытаюсь связать этот геморрой со списками, find, индексами и.т.д
Но я знаю, что существуют очень простые методы.
Допустим есть строка = sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI
Так вот, мне нужно проверить, есть ли в этой строке буквы "D"E"N"I"
Только это будет список x = [input() for i in range(int(input())
И мне нужно проверить каждый индекс на наличие этих букв.
Как я смогу это сделать без ВЛОЖЕННЫХ ДО ТРЕХ ЦИКЛОВ, С КОПИРОВАНИЕМ, И.Т.Д?
Python
Как найти сразу несколько символов в PYTHON?
Если нужен только факт наличия букв:
Если нужны индексы букв:
s = "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI"
d = set('DENI')
print(*filter(d.__contains__, s))
filter даст последовательность, которую можно обрабатывать. Например: if set(filter(d.__contains__, s)) == d: print('Все буквы присутствуют')
if sum(map(d.__contains__, s)) != 0: print('Хотя бы одна буква присутствует')
Если нужны индексы букв:
s = "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI"
d = set('DENI')
print(*(i for i in range(len(s)) if s[i] in d))
Нет здесь места вложенным циклам. Задача решается последовательно
import re
Как найти сразу несколько символов в Python без вложенных циклов, копирования и т.д.? Вам нужно проверить, есть ли определенные буквы "D", "E", "N" и "I" в данной строке: "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI", используя список x = [input() for i in range(int(input())].
Вы можете использовать простой метод без вложенных циклов, копирования и т.д., чтобы проверить наличие каждого символа в строке. Вот два подхода, которые могут быть полезными:
1. Метод any():
- Преобразуйте строку в набор символов с помощью set().
- Используйте функцию any() для проверки наличия каждого символа из списка x в наборе символов строки.
- Верните результат проверки.
Пример кода:
```python
string = "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI"
x = [input() for _ in range(int(input()))]
characters = set(string)
result = any(char in characters for char in x)
print(result)
```
2. Метод intersection():
- Преобразуйте строку в набор символов с помощью set().
- Создайте набор символов из списка x.
- Используйте метод intersection() для проверки пересечения между набором символов строки и набором символов из списка x.
- Если результат intersection() не пустой, значит, все символы из списка x присутствуют в строке.
Пример кода:
```python
string = "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI"
x = [input() for _ in range(int(input()))]
characters = set(string)
x_set = set(x)
result = characters.intersection(x_set) == x_set
print(result)
```
Оба этих метода позволяют проверить наличие нескольких символов в строке без необходимости использования вложенных циклов или копирования. Надеюсь, это поможет вам решить вашу задачу!
Вы можете использовать простой метод без вложенных циклов, копирования и т.д., чтобы проверить наличие каждого символа в строке. Вот два подхода, которые могут быть полезными:
1. Метод any():
- Преобразуйте строку в набор символов с помощью set().
- Используйте функцию any() для проверки наличия каждого символа из списка x в наборе символов строки.
- Верните результат проверки.
Пример кода:
```python
string = "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI"
x = [input() for _ in range(int(input()))]
characters = set(string)
result = any(char in characters for char in x)
print(result)
```
2. Метод intersection():
- Преобразуйте строку в набор символов с помощью set().
- Создайте набор символов из списка x.
- Используйте метод intersection() для проверки пересечения между набором символов строки и набором символов из списка x.
- Если результат intersection() не пустой, значит, все символы из списка x присутствуют в строке.
Пример кода:
```python
string = "sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI"
x = [input() for _ in range(int(input()))]
characters = set(string)
x_set = set(x)
result = characters.intersection(x_set) == x_set
print(result)
```
Оба этих метода позволяют проверить наличие нескольких символов в строке без необходимости использования вложенных циклов или копирования. Надеюсь, это поможет вам решить вашу задачу!
"сразу несколько символовом" - есть ли в этой строке буквы "D"E"N"I"
Что за проблема? Обычное in и цикл который проверяет вхождения.
Вот если под "сразу несколькими символами" имелись в виду все индексы вхождения какой-либо подстроки - было бы поинтереснее
Что за проблема? Обычное in и цикл который проверяет вхождения.
Вот если под "сразу несколькими символами" имелись в виду все индексы вхождения какой-либо подстроки - было бы поинтереснее
def find_dst(word, str_):
ind = 0
while ind != -1:
ind = str_.find(word, ind) # поиск начиная с обновленного индекса
if ind > -1:
yield ind
ind += 1
s = 'der gdfy dst hgf hgrew dst hkrgd dst ghjk gjhjj dst hkjdst ggkk'
print(list(find_dst('dst', s)))
[9, 23, 33]Похожие вопросы
- Замена текста между двумя символами в Python
- Помогите найти ошибку в задаче по Python
- Где найти самое лучшее онлайн-обучение по Python?
- Окончил курсы на степике по Python что делать дальше?
- Python программирование. Помогите написать программу.
- Помогите решить задачу на Python. Никак не могу решить задачу, больше дня не могу найти ответ! Никакой код не работает.
- Нейронные сети на Python 3.4
- Помогите, как сделать авторизацию в программе на python?
- Что писать на Python?
- Есть ли смысл изучать python