Kezdőoldal » Számítástechnika » Programozás » Hogyan kellene ezt elegánsabba...

Hogyan kellene ezt elegánsabban megoldani pythonban? (könnyű)

Figyelt kérdés

Van egy viszonylag egyszerűbb feladat:

2 különböző lista (a lista input megoldása nem feladat, elég megadni)közös elemit kell kiíratni ismétlés nélkül, én erre jutotam:


a = [5000,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,777,4]

b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,777,1,2,3,34,4,5,6,7]

e=[]


if len(a)>len(b):

c=a

d=b

else:

c=b

d=a

for n in range (0,len(c)):

for m in range (0,len(d)):

if c[n]==d[m] and c[n] not in e:

e.append(c[n])

print e


Tudom, hogy eléggé suta a hosszellenörzés, de teszi a dolgát, viszont 1000%, hogy van ennél szebb megoldás is, valaki tudna tippet adni? :)

Előre is köszi!



2016. okt. 3. 14:47
 1/7 anonim ***** válasza:
100%

a = [12, 23, 4, 5, 23, 78, 99]

b = [34, 4, 56, 77, 66, 99]

intersect = [x for x in a if x in b]


Azt hiszem, arre mar ra lehet mondani, hogy "pythonic". :)

2016. okt. 3. 15:26
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
100%

Ha fontos, hogy ismetles nelkuli legyen, akkor:

[x for x in set(a) if x in b]

2016. okt. 3. 15:27
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
64%
Tehetnél még bele pár egybetűs változónevet, hogy teljesen átláthatatlan legyen.
2016. okt. 3. 18:57
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
100%

print set(a) & set(b)


Mind a két listát halmazzá konvertálod, ekkor a & operátor adja vissza a két halmaz közös elemit.

2016. okt. 3. 20:20
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Megformázva:


>>> a = [5000,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,777,4]

>>> b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,777,1,2,3,34,4,5,6,7]

>>> print ', '.join(map(str, set(a) & set(b)))

1, 2, 3, 4, 5, 8, 777, 13, 34

2016. okt. 3. 20:23
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
Wow! Köszönöm! Ha kezdő vagyok, gond, hogy ezekkel még nem találkoztam? Ezeket honnan illene ismerni? Az ember magára szedi program nyelv használta közben vagy ezt is ugyanúgy szokás megtanulni, mint amikor neki ülünk és ismerkedünk egy nyelvvel?
2016. okt. 3. 22:56
 7/7 anonim ***** válasza:

#6

Nem lenne gond akkor sem ha nem lennél kezdő - addig nem kell ismerni az eszközöket amíg nincs rájuk szükség. A legtöbb programnyelvben annyi okosság van hogy nagyon-nagyon sokáig tartana mindegyiken átrágni magad, ha van egy adott feladat amire úgy érzed hogy túl nyakatekert lenne a megoldásod és kutakodsz az már teljesen jó - mint pl most. A normális változónevekre viszont tényleg jó ha minél előbb rászoktatod magad, ezekből később csak a baj lesz.

2016. okt. 4. 00:06
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!