List sort – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

List sort – Python – Fórum – Programujte.comList sort – Python – Fórum – Programujte.com

 

MALR
~ Anonymní uživatel
2 příspěvky
21. 11. 2020   #1
-
0
-

Zdravím,

Mohl by mi prosím někdo poradit, jak co nejefektivněji udělat bez použití žádné funkce program, který mi v změní seznam čísel tak, že všechna stejná čísla, která jsou stejná nebo mezi sebou mají znak "X* sečte a na jejich pozice dá právě "X".

Děkuji za odpověď

Nahlásit jako SPAM
IP: 185.74.60.–
peter
~ Anonymní uživatel
4014 příspěvků
21. 11. 2020   #2
-
0
-

To zadani dava zadny smysl. Doporucil bych ho predlozit cestinari a nekomu, kdo rozumi programovani, aby text prepracoval.

"udělat bez použití žádné funkce"
- funkce je v podstate cokoliv, i cyklus
- bez pouziti zadne funkce je dvoji negace, takze vysledkem je text 'udelat s pouzitim funkce'

"mi v změní seznam čísel" list[1,2,3,4...] ok, prvni srozumitelna veta. Pokud ale seznam neni zadany jako list cisle integer, tak je nutne popsat, jak vypada zadani nebo pridat obrazek.

"všechna stejná čísla, která jsou stejná"
- kdyz jsou cisla stejna, nemuzou byt vice stejnejsi

"čísla, která ... mezi sebou mají znak "X"
- cislo je cislo, integer, float, nemuze mit mezi sebou "X"

"sečte a na jejich pozice dá právě "X""
- Co??? jako, na pozici v tom poli list nebo jak?
Jsi si jisty, ze se jedna o seznam, list a neni ve vychozim zadani retezec, string? Protoze pozice v retezci dava o neco vetsi smysl. U pole se slovo pozice pouziva mene.
A i kdyby slo o string, ma byt vysledek jaky:
"123X456 789 789" => XXX X X nebo X X X nebo co jineho?
A jeste je otazka, zda maji byt nahrazeny 2 po sobe jdouci stejne, nebo jakekoliv cislo, ktere se vyskytuje vice nez 1x nebo string, ktery ma uprostred X?

No, takze, jestli je to string, tak nejelegantnejsi cestou jsou regularni vyrazy. Jinak by stacilo pouzit i cyklus a split. Ale, jak rikam, reseni je tezke urcit, protoze zadani je zmatene. Ani po 30 letech programovani nejsem z toho schopen vydedukovat vic nez jsem prave popsal.

Nahlásit jako SPAM
IP: 193.84.198.–
MALR
~ Anonymní uživatel
2 příspěvky
21. 11. 2020   #3
-
0
-

#2 peter
Dobrý, tak teda za X se dají dosadit nuly.... tudíž například [0,2,2,2,0] -> [0,4,0,2,0] nebo [2,2,4,2,2,0,8,8] -> [4,0,4,4,0,0,16,0] Tedy potřebuji sečíst dvě po sobě jsoucí nenulová čísla 1) pokud jsou stejná nebo pokud mezi nimi jsou pouze nuly.

Nahlásit jako SPAM
IP: 185.74.60.–
JerryM0
Věrný člen
22. 11. 2020   #4
-
0
-

to by mě zajímalo kdo takovýhle chujoviny vymejšlí ... to bude nějakej pěknej mamlas ...

a ten seznam čísel je danej v nějakým poli ? nebo ho musíš načíst ze souboru ?

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:78bd:1579:d7cc:cc0b...–
Pavel
~ Anonymní uživatel
383 příspěvků
22. 11. 2020   #5
-
0
-

   

def merge(lst):

    L = range(len(lst))

    for i in L:
        # stejne po sobe jdouci hodnoty
        if i < L[-1] and lst[i] == lst[i + 1]:
            lst[i] = lst[i] + lst[i + 1]
            lst[i + 1] = 0
        # hodnoty s 0 mezi
        elif i < L[-2] and lst[i + 1] == 0:
            lst[i] = lst[i] + lst[i + 2]
            lst[i + 2] = 0
Nahlásit jako SPAM
IP: 46.13.186.–
peter
~ Anonymní uživatel
4014 příspěvků
23. 11. 2020   #6
-
0
-

Ja nechci nic rikal, ale cely ukol je vic a vic zahadnejsi.

[0,2,2,2,0] -> [0,4,0,2,0]
[2,2,4,2,2,0,8,8] -> [4,0,4,4,0,0,16,0]

- asi se jedna skutecne o seznam, a asnad i seznam cisel
- kde je X? a ukazky moznosti pro ne?
- v ukazce jsou moznosti, ze 3 po sobe stejna cisla 2,2,2 se zapisi jako 4,0,2, soucet prvnich dvou, ALE v prvnim zadani je napsane, ze vsechna stejna cisla, takze by mel byt vysledek 6,0,0, ze?

Podle mne, cele zadani je spatne, protoze nedava smysl. Pravdepodobne se jedna o skolni ukol, ktery je formulovany velmi nestastne. Pokud se pletu a jedna se o prakticky ukol, tak bych potreboval znat pozadi, proc se dane veci delaji, jaky to ma ucel, k cemu je vysledek dobry? Podle odpovedi bych snad dokazal poskladat chybejici informace nebo urcit lepsi reseni, jak dosahnout vysledku. Precti si treba zadani od hlucheucho. Z nej je jasne, co potrebuje. Odpoved znam, jen mi nejde vlozit prispevek.

Nahlásit jako SPAM
IP: 193.84.198.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý