Portál AbcLinuxu, 12. května 2025 08:38
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: passPokud 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]): …
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.