Hlavní navigace

Názor k článku Pohled pod kapotu JVM – přístup k prvkům složených datových typů v JVM, Lua VM a Python VM (pokračování) od Mintaka - Dobrý den a opět díky za článek. Zajímalo by...

  • Článek je starý, nové názory již nelze přidávat.
  • 2. 7. 2014 11:49

    Mintaka (neregistrovaný)

    Dobrý den a opět díky za článek.

    Zajímalo by mě použití konstrukce v příkladu v příkladu 21:

    # Tisk vsech prvku seznamu.
    #
    def printList(list_variable):
        for i in range(0, len(list_variable)):
            print(readItem(list_variable, i))

    proč nepoužít:

    def printList(list_variable):
        for var in list_variable:
            print(var)

    Podobně funkce printTuple v příkladu 23.

    Že přístup k prvkům seznamu, bez pomocné proměnné znáte je vidět z příkladů:
    funkcí sum a printList v příkladu 22.
    funkcí sum a printTuple v příkladu 24.


    Pro funkci inkrementace prvků jsem zkusmo použil:

    def modifyListItems(list_variable):
        return map(lambda x: x+1, list_variable)

    Bytecode je kratší,

    31           0 LOAD_GLOBAL              0 (map)
                 3 LOAD_CONST               1 (<code object <lambda> at 00B177B8, file "./Test21.py", line 31>)
                 6 MAKE_FUNCTION            0
                 9 LOAD_FAST                0 (list_variable)
                12 CALL_FUNCTION            2
                15 RETURN_VALUE

    ale švindluje odskakováním do lambda, a výkonnostně je cca 4x pomalejší :)