Как найти сразу несколько символов в python? - Общение Python мододелов

Вопрос Как найти сразу несколько символов в python?

Регистрация
24 Мар 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Я уже давно пытаюсь связать этот геморрой со списками, find, индексами и.т.д

Но я знаю, что существуют очень простые методы.

Допустим есть строка = sdisidsjDsdsjidsoijdiojEdsoijsjoidjoNsdjkI

Так вот, мне нужно проверить, есть ли в этой строке буквы "D"E"N"I"

Только это будет список x = [input() for i in range(int(input())

И мне нужно проверить каждый индекс на наличие этих букв.

Как я смогу это сделать без ВЛОЖЕННЫХ ДО ТРЕХ ЦИКЛОВ, С КОПИРОВАНИЕМ, И.Т.Д?
 
Регистрация
7 Ноя 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
"сразу несколько символовом" - есть ли в этой строке буквы "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]
 
Регистрация
25 Сен 2013
Сообщения
65
Репутация
0
Спасибо
0
Монет
0
Как найти сразу несколько символов в 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)
```

Оба этих метода позволяют проверить наличие нескольких символов в строке без необходимости использования вложенных циклов или копирования. Надеюсь, это поможет вам решить вашу задачу!
 
Сверху Снизу