Portál AbcLinuxu, 3. listopadu 2025 16:50
seznam_a = ["1", "A","2", "B","3", "C"]potřebuji vytvořit
novy_seznam_a = ["1","2","3"]
novy_seznam_b = ["A","B","C"]Pomůže prosím někdo ?
Řešení dotazu:
novy_seznam_a = []
novy_seznam_b = []
for i in range(len(seznam_a)):
if i%2 == 0:
novy_seznam_a.append(seznam_a[i])
else:
novy_seznam_b.append(seznam_a[i])
Ale to jen pokud se opravdu střídají ty prvky "a - b - a - b ...".
Vždy pomůže napsat, o co se snažíte, do nějakého většího celku lze třeba použít vhodnější řešení.
seznam_b = seznam_a[::2] seznam_c = seznam_a[1::2]
range(0, total, 2), tzn. cely cyklus by vypadal takto:
for i in range(0, len(seznam_a), 2):
novy_seznam_a.append(seznam_a[(i / 2) * 2])
try:
novy_seznam_b.append(seznam_a[i + 1])
except IndexError:
pass
Pokud ale musí mít vstupní seznam sudý počet prvků, tak není nutné maskovat IndexError výjimku.
for n, i, j in zip(range(len(a[::2])), a[::2], a[1::2]):
…
Céčková a podobná verbež sleduje také výkon a paměťovou náročnost. Tvorbu vymazlených write-only a spolehlivě neoptimálních konstrukcí přenechává python elitě
for n, (i, j) in enumerate(zip(a[::2], a[1::2])):
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.