Re: [python] vytvoření proměnných
exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
Tady je trošku problém, že není jasné, co se tím vlastně myslí. Co se myslí zápisem x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} Je to jen symbolické? Jsou p1, p2, ... pn řetězce, které vyjadřují jména chtěných proměnných? V Pythonu je každá proměnná pouze beztypovou nepojmenovanou referencí na cílový objekt. Ta reference je vložena do některého ze systémových slovníků, přes které je spojena s nějakým jménem. Takže jedna odpověď by mohla vypadat takto: p1, p2, p3 = h1, h2, h3 Ale p1, p2, p3, ... nelze zachytit do jiné struktury jménem jinak, než že se uloží řetězcová jména proměnných. V opačném případě jsou ve struktuře uložené jen ty reference, které se shodují s těmi, které se pamatují pro jména p1,... Ale reference uložená v jiné struktuře nemá žádnou přímou vazbu na jméno proměnné. Chtělo by to uvést kontext, v jakém to řešíš. Petr __ Od: Ing. Vladislav Ludík Komu: Konference PyCZ Datum: 21.12.2010 00:45 Předmět: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
exec('a = 5') print a Když to spustím: 5 a 5 a + 2 7 To je to přesné řešení ! Díky V.L. Lansky, Milan napsal(a): exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 5721 (20101221) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
Funguje to skvěle: x = ['a','b','c','d','e','f'] y = ['1','2','3','4','5','6'] for element in zip(x,y): exec ( '%s = %s' % element) print a, b, c, d, e, f 1 2 3 4 5 6 print a + b + c + d + e + f 21 V.L. Lansky, Milan napsal(a): exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 5721 (20101221) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
omlouvam se, ale neodpustim si otazku, k cemu to chcete pouzit. exec urcite muze mit nekdy sva opodstatneni, proc jej pouzit, ale asi bychom se k nemu meli uchylovat jen v opravdu nejkrajnejsich oblastech. jde vam jen o to si neco vyzkouset, nebo toto skutecne chcete pouzit v nejakem produkcnim kodu? tam bych spis doporucil pouzit dictionary, jak zminovali kolegove prede mnou. abych jen nementoroval: pro vas konkretni pripad by jeste byla moznost modifikovat globals() [1], ale asi bych se na to koukal podobne jako na ten exec. [1] http://www.faqs.org/docs/diveintopython/dialect_locals.html#dialect.locals.readonly.example mejte se. 2010/12/21 Ing. Vladislav Ludík vl...@ludik.cz: Funguje to skvěle: x = ['a','b','c','d','e','f'] y = ['1','2','3','4','5','6'] for element in zip(x,y): exec ( '%s = %s' % element) print a, b, c, d, e, f 1 2 3 4 5 6 print a + b + c + d + e + f 21 V.L. Lansky, Milan napsal(a): exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 5721 (20101221) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Jakub Vysoky mob: +420 605 852 377 jab: jakub.vys...@gmail.com icq: 109248375 twit: https://twitter.com/kvbik ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
A je vam jasne ze exec() je pythoni obdoba nabite brokovnice? y = ['1','2','3','4','5','open('/etc/passwd').read()'] Vsechny promenne v pythonu jsou jen odkazy v nejakem jmennem prostoru, kam se da sahnou i mene nebezpecnym zpusobem: for k, v in zip(x,y): setattr(someobject, k, v) 'someobject' muze byt trida, instance, modul... cokoliv krome lokalniho jmenneho prostoru funkce. Ten neni sam o sobe objekt takze je dostupny jako slovnik volanim locals(), takze by stacilo locals().update(dict(zip(x,y))) Modifikace skrz locals() sice nejsou podle rtfm tak uplne koser, ale funguje to a porad je to lepsi nez ten exec() Ing. Vladislav Ludík (Tuesday 21 December 2010 18:49:33): Funguje to skvěle: x = ['a','b','c','d','e','f'] y = ['1','2','3','4','5','6'] for element in zip(x,y): exec ( '%s = %s' % element) print a, b, c, d, e, f 1 2 3 4 5 6 print a + b + c + d + e + f 21 V.L. Lansky, Milan napsal(a): exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 5721 (20101221) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
Mám stovky tabulek s různou strukturou , které vstupují do stránek. Některé hodnoty se zobrazují přímo a některé se modifikují, Na začátku ani nevím, jaké sloupce tabulka má a jak budou modifikovány. Tímto si jen ulehčím zápis v programu.: tab = 'tabulka' SQL = 'DESCRIBE `%s`' % tab vysledek = sql(SQL)# moje funkce sql(SQL) vykoná SQL příkaz pole = {} # zde uložím název sloupce a jeho typ for radek in vysledek: Field, Type, Null, Key, Default, Extra = radek pole[Field] = Type select = pole.keys() # seznam sloupců typy = pole.values() # seznam typů SQL = 'SELECT * FROM `%s`' % tab vysledek = sql(SQL) # využití různé, například jako přehled dat for radek in vysledek: for i in range(len(select)): print '%s = %s' % (select[i],radek[i]) Taky můžu ve formátování brát ohled na typ atd. V.L. Jakub Vysoky napsal(a): omlouvam se, ale neodpustim si otazku, k cemu to chcete pouzit. exec urcite muze mit nekdy sva opodstatneni, proc jej pouzit, ale asi bychom se k nemu meli uchylovat jen v opravdu nejkrajnejsich oblastech. jde vam jen o to si neco vyzkouset, nebo toto skutecne chcete pouzit v nejakem produkcnim kodu? tam bych spis doporucil pouzit dictionary, jak zminovali kolegove prede mnou. abych jen nementoroval: pro vas konkretni pripad by jeste byla moznost modifikovat globals() [1], ale asi bych se na to koukal podobne jako na ten exec. [1] http://www.faqs.org/docs/diveintopython/dialect_locals.html#dialect.locals.readonly.example mejte se. 2010/12/21 Ing. Vladislav Ludík vl...@ludik.cz: Funguje to skvěle: x = ['a','b','c','d','e','f'] y = ['1','2','3','4','5','6'] for element in zip(x,y): exec ( '%s = %s' % element) print a, b, c, d, e, f 1 2 3 4 5 6 print a + b + c + d + e + f 21 V.L. Lansky, Milan napsal(a): exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 5721 (20101221) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
Mám stovky tabulek s různou strukturou , které vstupují do stránek. Některé hodnoty se zobrazují přímo a některé se modifikují, Na začátku ani nevím, jaké sloupce tabulka má a jak budou modifikovány. Tímto si jen ulehčím zápis v programu.: tab = 'tabulka' SQL = 'DESCRIBE `%s`' % tab vysledek = sql(SQL) # moje funkce sql(SQL) vykoná SQL příkaz [...] No, jestli to nemá být jen nějaká rychlovka, tak doporučuju investovat čas do SQLAlchemy. (Doporučuje devět z deseti zubních lékařů.) Jak už se tady zmiňovalo, SQLAlchemy je něco jako dokonalé. Já jsem s jeho pomocí asi tak za 3-4 dny (plus tak asi stejný čas na rozmyšlenou) napsal jednodušší obdobu Salesforce.com. -- Petr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
Vyborne ;). Tak v tomhle vam vazne nic nebrani pouzit dictionary. Samozrejme byste to mohl nastavovat jak do locals(), tak jako atributy tridy a podobne jine konstrukce, ale zase se dostanete do opacneho problemu, jak zjistit, ktere promenne mate nadefinovane. Opet by pomohl protikus setattru getattr, ale akorat tak ucinite kod absolutne neprehledny. Pokud potrebujete pomoct s praci se slovnikem, nevahejte se ptat, ale jak exec, tak setattr se ve vasem pripade vyhnete. Jinak take doporucuju SqlAlchemy, pripadne mozna jednodussi pro zacatek bude webovy framework Django, ktery ma take sve objektove relacni mapovani. I kdyz v tomhle konkretnim pripade uz to chce lepsi znalost tech knihoven, protoze mapovani objektu na jiz hotove tabulky muze byt trosku tricky. Drzim palce, Jakub. 2010/12/21 Ing. Vladislav Ludík vl...@ludik.cz: Mám stovky tabulek s různou strukturou , které vstupují do stránek. Některé hodnoty se zobrazují přímo a některé se modifikují, Na začátku ani nevím, jaké sloupce tabulka má a jak budou modifikovány. Tímto si jen ulehčím zápis v programu.: tab = 'tabulka' SQL = 'DESCRIBE `%s`' % tab vysledek = sql(SQL) # moje funkce sql(SQL) vykoná SQL příkaz pole = {} # zde uložím název sloupce a jeho typ for radek in vysledek: Field, Type, Null, Key, Default, Extra = radek pole[Field] = Type select = pole.keys() # seznam sloupců typy = pole.values() # seznam typů SQL = 'SELECT * FROM `%s`' % tab vysledek = sql(SQL) # využití různé, například jako přehled dat for radek in vysledek: for i in range(len(select)): print '%s = %s' % (select[i],radek[i]) Taky můžu ve formátování brát ohled na typ atd. V.L. Jakub Vysoky napsal(a): omlouvam se, ale neodpustim si otazku, k cemu to chcete pouzit. exec urcite muze mit nekdy sva opodstatneni, proc jej pouzit, ale asi bychom se k nemu meli uchylovat jen v opravdu nejkrajnejsich oblastech. jde vam jen o to si neco vyzkouset, nebo toto skutecne chcete pouzit v nejakem produkcnim kodu? tam bych spis doporucil pouzit dictionary, jak zminovali kolegove prede mnou. abych jen nementoroval: pro vas konkretni pripad by jeste byla moznost modifikovat globals() [1], ale asi bych se na to koukal podobne jako na ten exec. [1] http://www.faqs.org/docs/diveintopython/dialect_locals.html#dialect.locals.readonly.example mejte se. 2010/12/21 Ing. Vladislav Ludík vl...@ludik.cz: Funguje to skvěle: x = ['a','b','c','d','e','f'] y = ['1','2','3','4','5','6'] for element in zip(x,y): exec ( '%s = %s' % element) print a, b, c, d, e, f 1 2 3 4 5 6 print a + b + c + d + e + f 21 V.L. Lansky, Milan napsal(a): exec(p1 + '=' + str(h1)) -Original Message- From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Ing. Vladislav Ludík Sent: Tuesday, December 21, 2010 12:45 AM To: Konference PyCZ Subject: [python] vytvoření proměnných Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python __ Informace od NOD32 5721 (20101221) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python -- Jakub Vysoky mob: +420 605 852 377 jab: jakub.vys...@gmail.com icq: 109248375 twit: https://twitter.com/kvbik ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] vytvoření proměnných
Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vytvoření proměnných
V Tue, 21 Dec 2010 00:45:09 +0100 Ing. Vladislav Ludík vl...@ludik.cz napsáno: Zdravím všechny, poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů proměnných s jejich hodnotami: x = {p1, p2, p3, ...pn} y = {h1, h2, h3, ...hn} kde p jsou proměnné a h jsou jejich hodnoty. Výsledkem by měly být deklarované proměnné s jejich hodnotami: p1 = h1 p2 = h2 p2 = h3 . . pn = hn Díky, zdraví V.L. nevím teda jak přímo natypovat promennou, ale jednodušší by asi bylo jen vytvorit pole hodnot z těch X, Y. result = zip(x, y) result [(p1, h1), (p2, h2), (p3, h3),...(pn, hn)] ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python