Pull to refresh
-1
0
Send message
open ("file.txt", "w"). write ("hello world \n")

Кхм, а файл закрыть не надо?

А про генераторы никто не забыл?

@danilovmy Генераторы, конечно, - хорошая штука, но и её надо использовать с умом.

каждый раз когда вижу цикл по листу или генератор листа, возникает вопрос: зачем?

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

Небольшая проблема - в такой ситуации как раз и нужны генераторы. Списки создаются медленнее, чем генераторы, но вот первый проход по списку сильно обходит в скорости первый проход по генератору. Чтобы не быть голословным (да, обычный python):

# -*- coding: utf-8 -*-
import sys
import timeit


def loop(iterable):
    for i in iterable:
        pass


if __name__ == "__main__":
    listSetTime = timeit.timeit("l = [i for i in range(100_000)]", number=10)/10
    genSetTime = timeit.timeit("g = (i for i in range(100_000))", number=10)
    print("Время создания списка:", listSetTime)
    print("Время создания генератора:", genSetTime, "\n")

    list_ = [i for i in range(100_000)]
    gen = (i for i in range(100_000))

    #Торможением лямбды можно пренебречь, так как она тормозит все циклы.
    firstListLoop = timeit.timeit(lambda: loop(list_), number=1)
    firstGenLoop = timeit.timeit(lambda: loop(gen), number=1)

    print("Время первого обхода списка:", firstListLoop)
    print("Время первого обхода генератора:", firstGenLoop, "\n")
    
    othersListLoops = timeit.timeit(lambda: loop(list_), number=10)/10
    othersGenLoops = timeit.timeit(lambda: loop(gen), number=10)/10
    print("Время последующих обходов списка:", othersListLoops)
    print("Время последующих обходов генератора:", othersGenLoops, "\n")

    print("Итог список (1 проход):", listSetTime + firstListLoop)
    print("Итог генератор (1проход):", genSetTime + firstGenLoop)

И так, что же мы получаем (на моём динозавре):

Время создания списка: 0.007672091200000002
Время создания генератора: 1.5359999999992047e-05

Время первого обхода списка: 0.0018502880000000055
Время первого обхода генератора: 0.01038803100000002

Время последующих обходов списка: 0.0018962978999999991
Время последующих обходов генератора: 5.119999999997349e-07

Итог список (1 проход): 0.009522379200000007
Итог генератор (1 проход): 0.010403391000000012

Мы видим, что если нам надо один раз проитерировать и забыть, нам нужен список, а вот если надо много раз проитерировать, зовите генератор. Однако и про то, что список окаянный жрёт память посильнее хрома забывать не надо.

Компроментация такого комплекса на службе у государства - вопрос времени. Любая система, подключённая к сети, может быть взломана, а если она будет работать на государство, то и внимание к ней будет повышенное.

Утечка данных из такой системы может иметь фатальное значение для государства.

Если же рассматривать ваше сверх справедливое гипотетическое государство, то оно будет очень уязвимо перед другими государствами - все данные же в открытом доступе - вот лафа то разведчикам!

Конечно хорошо знать про криптовалюту в Эстонии, но в вашей статье ни слова про статус крипты в России. Можно по подробнее на эту тему?

Вообще, по мнению некоторых аналитиков, маргарин, похоже, влияет на всё на свете.

Ставить апк? Это что-то вроде андроида для пк? Извини если выглядит очень тупо, просто вообще впервые об этой операционке слышу.

Information

Rating
Does not participate
Location
Россия
Registered
Activity