Wpis z mikrobloga

cześć,
jakie konstrukcji w #python mozna uzyc, zeby w petli wygenerowac nie tylko wartosci ale i zmienne do nich przypisane? Tj sprawdzam, czy X istnieje w tabeli - jesli tak, kopiuje czesc tabeli do tabeli: tx1 i generuję dodatkowo zmienną zx1. Problem dla wiekszej liczby zmiennych staje sie gigantyczna ifologią ;) Dla ułatwienia (chyba; ;)) jesli danej zmiennej nie ma w tabeli, zmienne od niej zalezne ustawiam na None.
  • 11
@thomeq: dobra, ale co ci daje to "generowanie" tej zmiennej? za bardzo wchodzisz w szczegół i ciężko ci doradzić, bo wciąż nie wiadomo co jest u ciebie pożądanym efektem za bardzo niestety

obecnie mogę ci tylko powiedzieć tyle, że jeśli nie chcesz mieć ifologii no to napisz funkcję, która będzie robiła to, co kod który chciałbyś przeklejać. ciężko powiedzieć co chcesz osiągnąć, ale też tak swoją drogą wydaje mi się że
@ehhhh: z tym iterowaniem chodzi Ci o to:
if x in jakastabela.loc[jakastabela['ABC'], 'XXX'].tolist():?
to walsnie tu zauwazylem blad, powinno byc :
if x in jakastabela.loc[jakastabela['ABC']==warunek, 'XXX'].tolist():
(ucze sie po godznach i troche juz na pysk padam).
Na wejsciu mam - dla uproszczenia - trzy zmienne. Jedna to np. czas. Powyzsza linijka sprawdzaa czy zmienna x wystapila w tym czasie (w tabeli sa kolumny: czas, zmiennex, inne
@thomeq:

Szukam prostej metody na tworzenie ad hoc zmiennych - typu tabela1, tabela2 itd.

myk tym ze zmiennych w locie sie nie tworzy, jak juz musisz to trzymasz takie nazwy (bo zmienna de fakto jest nazwa z przypisana wartoscia) w słowniku
@thomeq: a tak już kompletnie w pytke jak juz musisz to:

class MojaZmienna():
def _init(nazwazmiennej):
self.nazwazmiennej = nazwazmiennej

i potem w petli se robisz

for dupsko in range(2137):
MojaZmienna('zmienna{}'.format(dupsko))
@thomeq: z iterowaniem chodziło o to, że generalnie rzecz ujmując jeśli chcesz np wybrać z tabeli tylko elementy, które spełaniają konkretny warunek, to iterując się przez całą tabele w pętli for masz o wiele gorszą złożoność niż np robiąc tabela[kolumna==szukana] (równie dobrze mógłbyś zrobić for i in tabela.kolumna: if i == szukana, co jest o wiele wiele wolniejsze) -> więc jeśli widzisz w swoim kodzie "for" to zastanów się czy nie