История изменений
Исправление
Psych218,
(текущая версия)
:
Вот это вот какая-то жесть:
for x in range(len(subj)):
if subj[x] == outdata[-1] or subj[x] in removed_symbols:
continue
else:
outdata += subj[x]
Во-первых, это не C, и for тут другой. Если ты перебираешь элементы чего-либо, то не надо перебирать их индексы из range (sic!):
for x in subj:
if x == outdata[-1] or x in removed_symbols:
continue
else:
outdata += x
Во-вторых, можно просто немного сократить, хотя это не прироста (в отличие от лишних вызовов range, индексации и всего такого, но станет короче и проще (без continue):
for x in subj:
if x != outdata[-1] or x not in removed_symbols:
outdata += x
Далее, вот так делать не надо:
subj[-3:] == stress_symbol
ведь есть замечательный метод, делающий прямо вот ровно-ровно то, что ты хочешь, и называющийся соответствующе:
subj.endswith(stress_symbol)
А то у тебя -3 волшебное число, где 3 = len(stress_symbol), да и вообще сбивает с толку и медленнее.
А вот это:
for x in outdata.split():
if x in stress_words:
return True
return False
Я бы записал так:
return any(word in stress_words for word in outdata.split())
По-моему так читаемее. Хотя для новичка в Python (или в генераторах в нём, или кто не любит any) первый вариант может показаться читаемее. Тут не буду спорить, тем не менее, я бы написал так.
Исправление
Psych218,
:
Вот это вот какая-то жесть:
for x in range(len(subj)):
if subj[x] == outdata[-1] or subj[x] in removed_symbols:
continue
else:
outdata += subj[x]
Во-первых, это не C, и for тут другой. Если ты перебираешь элементы чего-либо, то не надо перебирать их индексы из range (sic!):
for x in subj:
if x == outdata[-1] or x in removed_symbols:
continue
else:
outdata += x
Во-вторых, можно просто немного сократить, хотя это не прироста (в отличие от лишних вызовов range, индексации и всего такого, но станет короче и проще (без continue):
for x in subj:
if x != outdata[-1] or x not in removed_symbols:
outdata += x
Далее, вот так делать не надо:
subj[-3:] == stress_symbol
ведь есть замечательный метод, делающий прямо вот ровно-ровно то, что ты хочешь, и называющийся соответствующе:
subj.endswith(stress_symbol)
А то у тебя -3 волшебное число, где 3 = len(stress_symbol), да и вообще сбивает с толку и медленнее.
А вот это:
for x in outdata.split():
if x in stress_words:
return True
return False
Я бы записал так:
return any(x in stress_words for x in outdata.split())
По-моему так читаемее. Хотя для новичка в Python (или в генераторах в нём, или кто не любит any) первый вариант может показаться читаемее. Тут не буду спорить, тем не менее, я бы написал так.
Исправление
Psych218,
:
Вот это вот какая-то жесть:
for x in range(len(subj)):
if subj[x] == outdata[-1] or subj[x] in removed_symbols:
continue
else:
outdata += subj[x]
Во-первых, это не C, и for тут другой. Если ты перебираешь элементы чего-либо, то не надо перебирать их индексы из range (sic!):
for x in subj:
if x == outdata[-1] or x in removed_symbols:
continue
else:
outdata += x
Во-вторых, можно просто немного сократить, хотя это не прироста (в отличие от лишних вызовов range, индексации и всего такого, но станет короче и проще (без continue):
for x in subj:
if x != outdata[-1] or x not in removed_symbols:
outdata += x
Далее, вот так делать не надо:
subj[-3:] == stress_symbol
ведь есть замечательный метод, делающий прямо вот ровно-ровно то, что ты хочешь, и называющийся соответствующе:
subj.endswith(stress_symbol)
А то у тебя -3 волшебное число, где 3 = len(stress_symbol), да и вообще сбивает с толку и медленнее.
А вот это:
for x in outdata.split():
if x in stress_words:
return True
return False
Я бы записал так:
return any(x for x in outdata.split() if x in stress_words)
По-моему так читаемее. Хотя для новичка в Python (или в генераторах в нём, или кто не любит any) первый вариант может показаться читаемее. Тут не буду спорить, тем не менее, я бы написал так.
Исправление
Psych218,
:
Вот это вот какая-то жесть:
for x in range(len(subj)):
if subj[x] == outdata[-1] or subj[x] in removed_symbols:
continue
else:
outdata += subj[x]
Во-первых, это не C, и for тут другой. Если ты перебираешь элементы чего-либо, то не надо перебирать их индексы из range (sic!):
for x in subj:
if x == outdata[-1] or x in removed_symbols:
continue
else:
outdata += x
Во-вторых, можно просто немного сократить, хотя это не прироста (в отличие от лишних вызовов range, индексации и всего такого, но станет короче и проще (без continue):
for x in subj:
if x != outdata[-1] or x not in removed_symbols:
outdata += x
Далее, вот так делать не надо:
subj[-3:] == stress_symbol
ведь есть замечательный метод, делающий прямо вот ровно-ровно то, что ты хочешь, и называющийся соответствующе:
subj.endswith(stress_symbol)
А то у тебя -3 волшебное число, где 3 = len(stress_symbol), да и вообще сбивает с толку и медленнее.
А вот это:
for x in outdata.split():
if x in stress_words:
return True
return False
Я бы записал так:
return any(x for x in outdata.split if x in stress_words)
По-моему так читаемее. Хотя для новичка в Python (или в генераторах в нём, или кто не любит any) первый вариант может показаться читаемее. Тут не буду спорить, тем не менее, я бы написал так.
Исходная версия
Psych218,
:
Вот это вот какая-то жесть:
for x in range(len(subj)):
if subj[x] == outdata[-1] or subj[x] in removed_symbols:
continue
else:
outdata += subj[x]
Во-первых, это не C, и for тут другой. Если ты перебираешь элементы чего-либо, то не надо перебирать их индексы из range (sic!):
for x in subj:
if x == outdata[-1] or x in removed_symbols:
continue
else:
outdata += x
Во-вторых, можно просто немного сократить, хотя это не прироста (в отличие от лишних вызовов range, индексации и всего такого, но станет короче и проще (без continue):
for x in subj:
if x != outdata[-1] or x not in removed_symbols:
outdata += x
Далее, вот так делать не надо:
subj[-3:] == stress_symbol
ведь есть замечательный метод, делающий прямо вот ровно-ровно то, что ты хочешь, и называющийся соответствующе:
subj.endswith(stress_symbol)
А то у тебя -3 волшебное число, где 3 = len(stress_symbol), да и вообще сбивает с толку и медленнее.
А вот это:
for x in outdata.split():
if x in stress_words:
return True
return False
Я бы записал так:
return any(x for x in outdata.split if x in stress_words)
По-моему так читаемее. Хотя для новичка в Python (или в функциях высшего порядка в нём) первый вариант может показаться читаемее. Тут не буду спорить, тем не менее, я бы написал так.