Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 15, 2015 21:03:26

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

Если в тексте есть слова, которые повторяются, как их найти и вывести в отдельный список?

Офлайн

#2 Июнь 15, 2015 21:20:05

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Регулярные выражения

>>> import re
>>> s = """ou may wish to load the Maps API JavaScript code after your page has finished loading, or on demand. To do so, you can inject your own <script> tag in response to a window.onload event or a function call, but you need to additionally instruct the Maps JavaScript API bootstrap to delay execution of your application code until the Maps JavaScript API code is fully loaded. You may do so using the callback parameter, which takes as an argument the function to execute upon completing loading the API"""
>>> l = re.split('\W*', s)
>>> a = []
>>> for i, j in enumerate(l):
...     if j not in a and j in l[:i]:
...         a.append(j)
... 
>>> print(a)
['your', 'to', 'or', 'a', 'you', 'the', 'Maps', 'JavaScript', 'API', 'code', 'may', 'do', 'so', 'function', 'loading']



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Июнь 15, 2015 21:22:10)

Офлайн

#3 Июнь 15, 2015 22:14:57

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

спасибо)
хотела бы еще спросить, в res хочу чтобы вывело 3 первых слова
[code import re
res =
for line in “манна, осанна, мумма, кллорд” :
linew = re.findall(r“мм|нн”, line)
res.extend(linew)]
а выводит пустой список

а такой вариант
text = “манна, осанна, мумма, кллорд”
rese = lambda text: re.findall(r'мм|нн', text)
выводит сам шаблон
rese(text)

Офлайн

#4 Июнь 16, 2015 09:19:27

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Регулярные выражения

@mary@
в res хочу чтобы вывело 3 первых слова
вставьте правильно код



————————————————
-*- Simple is better than complex -*-

Офлайн

#5 Июнь 16, 2015 21:25:25

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

 import re
res = []
for line in “манна, осанна, мумма, кллорд” :
     linew = re.findall(r“мм|нн”, line)
     res.extend(linew)]

Офлайн

#6 Июнь 16, 2015 21:27:29

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

text = “манна, осанна, мумма, кллорд”
rese = lambda text: re.findall(r'мм|нн', text)
>>>rese(text)
['нн', 'нн', 'мм']

Офлайн

#7 Июнь 16, 2015 21:28:06

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

а мне нужно чтобы слово полностью выводилось

Офлайн

#8 Июнь 16, 2015 22:32:24

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Регулярные выражения

>>> import re
>>> text = "манна, осанна, мумма, кллорд".decode('utf-8')
>>> l = re.findall(u'(?u)(\w*[мм|нн]\w*)', text)
>>> for i in l:
...     print i.encode('utf-8')
... 
манна
осанна
мумма



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Июнь 16, 2015 22:54:33)

Офлайн

#9 Июнь 16, 2015 23:27:20

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

хотела бы спросить, зачем мы меняем кодировку?

Офлайн

#10 Июнь 16, 2015 23:33:34

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

у меня пошло без кодировки и с + вместо *

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version