LINUX.ORG.RU

История изменений

Исправление 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 (или в функциях высшего порядка в нём) первый вариант может показаться читаемее. Тут не буду спорить, тем не менее, я бы написал так.