"сразу несколько символовом" - есть ли в этой строке буквы "D"E"N"I"
Что за проблема? Обычное 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 без вложенных циклов, копирования и т.д.? Вам нужно проверить, есть ли определенные буквы "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()))]
Оба этих метода позволяют проверить наличие нескольких символов в строке без необходимости использования вложенных циклов или копирования. Надеюсь, это поможет вам решить вашу задачу!