Prosba - úkol lineární seznamy – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prosba - úkol lineární seznamy – Python – Fórum – Programujte.comProsba - úkol lineární seznamy – Python – Fórum – Programujte.com

 

Lukáš
~ Anonymní uživatel
301 příspěvků
12. 12. 2015   #1
-
0
-

Ahoj mám prosbu, 

studuji dálkově OSU po nějakých 18 letech od střední, kde jsem programoval jen v assembleru a pascalu. Potřebuji pomoci s Pythonem. Měli jsme jen dvě krátké přednášky a ta jedna se věnovala malování s turtle. Teď mám však udělat úkol s lineárními seznamy. Mám dva stejně dlouhé seznamy (x1, x2, x3 ...) a (y1, y2, y3 ..., které mám spojit do jedno (x1, y1, x2, y2, x3, y3 ....). Podařilo se mi vytvořit ty dva seznamy, ale na propojení nemůžu přijít :-( Může mi někdo prosím poradit. 

Děkuji :-)

import random

class Vrchol(object):
    def __init__(self, hodn, next=None):
        self.naklad = hodn
        self.dalsi = next

class Vlacek(object):
    def __init__(self):
        self.zac = None

    def pridej(self, hodn):
        if self.zac is None:
            self.zac = Vrchol(hodn)
        else:
            self.zac = Vrchol(hodn, self.zac)

    def spoj(self):
        combs = []
        for x in Seza:
            for y in Sezb:
                if x != y:
                    combs.append((x, y))
                    
    def __repr__(self):
        c = self.zac
        s = ' '
        while c is not None:
            s = s + '--' + str(c.naklad)
            c = c.dalsi
        return s

Seza = Vlacek()
for i in range(10):
    Seza.pridej(random.randint(1, 100))
print(Seza)
Sezb = Vlacek()
for i in range(10):
    Sezb.pridej(random.randint(1, 100))
print(Sezb)

Nahlásit jako SPAM
IP: 91.103.166.–
Matěj Andrle+1
Grafoman
13. 12. 2015   #2
-
0
-

#1 Lukáš
V Pythonu se pole/seznamy/... jednoduše sčítají... (list1 + list2)

Nahlásit jako SPAM
IP: 31.30.56.–
Lukáš
~ Anonymní uživatel
301 příspěvků
13. 12. 2015   #3
-
0
-

#2 Matěj Andrle
Jenže to neudělá ten součet co potřebuji, sečte je pouze za sebe. A já je potřebuji promíchat. 

Nahlásit jako SPAM
IP: 81.91.213.–
Matěj Andrle+1
Grafoman
13. 12. 2015   #4
-
0
-

#3 Lukáš 

from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)

Google nezabíjí...

Nahlásit jako SPAM
IP: 31.30.56.–
Lukáš
~ Anonymní uživatel
301 příspěvků
13. 12. 2015   #5
-
0
-

#4 Matěj Andrle
jenže toto můj problém neřeší. Potřebuji spojit dva seznamy, kde budou za sebou v novém seznamu první položka ze seznamu A, první položka ze seznamu B, druhá položka ze seznamu A, druhá položka ze seznamu B, .... atd. 

Nahlásit jako SPAM
IP: 91.103.166.–
Matěj Andrle+1
Grafoman
14. 12. 2015   #6
-
0
-

#5 Lukáš
Tak to projedeš cyklem, no... (Až to spojíš, budeš se orientovat velikostmi původních polí - respektive zde jsou stejné...)

Nahlásit jako SPAM
IP: 31.30.56.–
Kit+15
Guru
14. 12. 2015   #7
-
0
-

#1 Lukáš
Možná chtěli tohle: 

s1 = ('x1', 'x2', 'x3')
s2 = ('y1', 'y2', 'y3')
spoj=[]
for i in range(len(s1)):
    spoj.append(s1[i])
    spoj.append(s2[i])
print(spoj)

Je to takové primitivní řešení - určitě to jde i lépe.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Wrunx
~ Anonymní uživatel
35 příspěvků
15. 12. 2015   #8
-
0
-

Anebo prostě:

c=zip(s1,s2)
d=reduce(lambda x,y: x+y,c)
print d

Nahlásit jako SPAM
IP: 188.120.195.–
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, 13 hostů

Podobná vlákna

Seznamy — založil

Ty seznamy... — založil tom9k

Seznamy v databázi — založil VelkyBubak

Problém se seznamy — založil Ahoj3

 

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