povedzme, že mám 5 premenných, nazveme ich A,B,C,D,E a chcem na každej z nich urobiť nejakú operáciu, napríklad
if A < 5:
.....A = A * 1.3
if A > 50:
.....A = 50
(Bodky sú namiesto tabulátora)
Teda nechcem mať 20 riadkov ktoré sa v zásade opakujú... ako na to?
>>> t = 12345, 54321
>>> u = t, 888
>>> u[0][0] = u[0][0] * 1.3
>>> t
nemam to teraz ako otestovat
>>> a = [1]
>>> b = a, [2]
>>> b
([1], [2])
>>> b[0][0] = 5
>>> a
[5]
povedzme že máš 5 premenných
A,B,C,D,E = 1,3,5,7,9
na každú znich chcem aplikovať toto
if premenna > 5:
.....premenna = premenna * 2
teda výsledok by mal byť
A,B,C,D,E = 1,3,5,14,18
neviem to napasovať na tvoje riešenie...
p(1) = 1;
p(2) = 3;
p(3) = 5;
p(4) = 7;
p(5) = 9;
for i = 1:(length(p))
if p(i) > 5
p(i) = p(i) * 2;
end
end
A,B,C,D,E = 1,3,5,7,9
zoznam = [A,B,C,D,E]
for i in range(len(zoznam)):
.....if zoznam[i] > 5:
..........zoznam[i] = zoznam[i] * 2
A,B,C,D,E = zoznam
V zásade je to vyriešené, ale ak by niekto vedel o elegantnejšom riešení...
A,B,C,D,E = 1,3,5,7,9
zoznam = [A,B,C,D,E]
for i in range(len(zoznam)):
..... if zoznam[i] > 5:
.......... zoznam[i] = zoznam[i] * 2
#A,B,C,D,E = zoznam
print A,B,C,D,E
tak ten posledný riadok (print) vráti pôvodné hodnoty
zoznam = [A],[B],[C],[D],[E]
potom:
zoznam[i][0] > 5 ...
A,B,C,D,E = [1],[3],[5],[7],[9]
A,B,C,D,E = [1],[3],[5],[7],[9]
zoznam = [A],[B],[C],[D],[E]
for i in range(len(zoznam)):
.....if zoznam[i][0] > 5:
..........zoznam[i][0] = zoznam[i][0] * 2
#A,B,C,D,E = zoznam
print A,B,C,D,E
tak stále mi to vracia iba pôvodné hodnoty (ako zoznamy) tak ako su nadefinované v prvom riadku...
A,B,C,D,E = zoznam
nie je potrebný. Samozrejme vyzerá to tak že je potrebný...
osobne tu nemám žiaden problém, ako som povedal, riešenie uvedené pár postov vyššie je funkčné a vyzerá dobre..