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ší :)
Zdravím,
já jsem to v článku zapoměl zdůraznit, ale snažil jsem se napsat kód, který by byl do značné míry stejný jako v Javě i v Lue, takže s použitím počitadla smyčky a s explicitním přístupem k prvkům (ve výsledku to není úplně to samé, ale aspoň se v bajtkódu použil BINARY_SUBSCR).
Jestli bude příště dost místa, tak bude povídání i o smyčkách foreach (takže se konečně přidá i Perl 6 :-).