Diskuze: for i in enumerate() dva výstupy
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Myslím, že enumerate není zdrojem tvých potíží. Z toho, co vydím se zdá, že použití funkce enumerate chápeš správně. Úplně si nejsem jist, co se snažíš vypsat. Ten tvůj kód vypadá vypisuje každy k-tý řádek z tabulky, kde k je počet sloupců, čož je hodně zvláštní. V první řadě bych ti doporučil přidtat na začátek pro učely testování
print (vyber_ozn)
, tak budeš mít přehled, co vše je v poli vyber_ozn. Pak už by to
nemělo být tak těžké opravit. Pokud budeš chtít vypsat šechny hodnoty z
pole, zkusis použít dva vnořené for cykly.
Nějak takto:
for radek in pole:
for hodnota in radek:
print(hodnota)
Výborně, takže znáš vstupní data. Teď je potřeba si ujasnit jaké
hodnoty chceš vypsat. apiš sem řádkové a slopcocvé indexy hodnot které
chceš vysat ijnak se nepohneme dál.
Jako cviční by možná také nebylo špatné si spustit následující kousek
kódu (jde o upravenou verzi tvého kodu s jinými vstupními daty a více
výpisy)
arr_2d = [['0_0', '0_1', '0_3'],['1_0','1_1','1_2'], ['2_0','2_1','2_2'],['3_0','3_1','3_2'],['4_0','4_1','4_2'],['5_0','5_1','5_2'],['6_0','6_1','6_2']]
index = 0
while index < len(arr_2d):
print('vnější cyklus')
for row in enumerate(arr_2d[index]):
print('vnitřní cyklus')
value = row[1]
row_index = row[0]
index += 1
print('hodnota', value)
print('index sloupce', row_index)
print('index řádku', index)
To by ti mělo pomoci pochpit, co ten tvůj současný kód přeně dělá.
Pořád nevím, co je špatně. Posunula jsem se ve svém programu kousek dál, ale funkce
for index, vyb in enumerate(vyber_ozn [1:len(vyber_ozn)]):
print(vyb)
mi pořád vypisuje to, co nechci.
Mám v tuple vložené např. 4 hodnoty:
[('HDD 1',), ('HDD 2',), ('HDD 3',), ('HDD4',)]
indexy jsou 0,1,2,3 atd ..
Výše uvedenou funkcí ignoruji první z nich (to už má ošetřené v jiné části kódu, aby pro první vloženou hodnotu se provádělo něco a pro další pak něco jiného.
Zbývající hodnoty (kdy není určen jejich konečný počet - podle vstupů) pak potřebuju vložit do values v treeview (HODNOTA). Výsledkem bude řádkový seznam, kdy na každém řádku bude hodnota z tuple seřazené dle indexů
trv.insert("", END, values = "HODNOTA", image = ikona[x])
trv.bind ("Double-1", Vysledky)
Na prvním řádku bude hodnota na indexu 0, druhý řádek hodnota na indexu 1 atd.
Funkce
for index, vyb in enumerate(vyber_ozn [1:len(vyber_ozn)]):
print(vyb)
mi pořád vypisuje to, co jsem popisovala na začátku tohohle topicu. Jak píše Jiří Havelka:
Jak Ten tvůj kód vypadá vypisuje každy k-tý řádek z tabulky, kde k je počet sloupců, čož je hodně zvláštní.
Potřebuju ty hodnoty vypsat jen jednou, ne 4x.
Zobrazeno 5 zpráv z 5.