Witam, obecnie stawiam mocny nacisk na optymalizcję algorytmów matematycznych. I zastanawia mnie fakt czy można stworzyć generator jednocześnie modyfikujący elementy listy.
Przykład działania:
cal, mod = divmod(n, 2)
for i in range(3, n/2, 2):
if not s[i]:
mod+=i
s[cal::mod] = [1]*len(s[cal::mod])
fun(result, i)
return result + [i for i in range(n/2+1, n, 2) if not s[i]]
Próbowałem to jakoś przerobić w ten sposób:
return [i for i in range(3, n/2, 2) if not s[i] and s[cal::mod+i] = [1]*len(s[cal::mod+i])]
Jednak generatory nie akceptują żadnego działania przypisania, zarówno gdy robię to funkcją lambda czy osobną.
Napisałem specjalną klasę, jednak to jest wolniejsze. Stąd się zastanawiam czy jest to w ogóle możliwe żeby działało w sposób jednolinijkowy.
POD mnie nie interesuje, bo jest to wyłącznie na mój użytek :).
Wszelkie wskazówki, bądź podpowiedzi pomysłów, mile widziane, próbowałem już wielu rzeczy, jeśli chcecie mogę rzucić więcej przykładów niedziałających, niemniej to raczej nic nie zmieni ;d