Új hozzászólás Aktív témák
-
cousin333
addikt
Nagy fájlok esetében nem is nagyon erőltetném a
print
-et, főleg, ha sok az egyezés. Érdemesebb inkább kiírni egy eredmény fájlba.A másik: a
set()
konstruktor egy iterálható objektumot vár, és a nyitott fájl objektum ilyen, szóval a kis fájll beolvasást tovább lehet egyszerűsíteni.# a kis fájl beolvasása
with open("kis-a.txt") as kf:
words = set(kf)
with open("nagy-b.txt") as nf, open("eredmeny.txt") as ef:
count = 0
for line in nf:
if line in words:
ef.write(line)
count += 1
print count, "egyezést találtam!" -
axioma
veterán
Szerintem ha nem kell a darabszam, akkor egy adatfile egy trie (azaz szo-fa), ertelemszeruen jobb a kicsibol, a nagyo(ka)t meg futtatod rajta egyesevel, ha talalat, akkor kiirod.
Amugy agyuval verebre, ha a sorrend mindegy. Lerendezed oket az oprendszer segitsegevel, es kapasbol eleg egy diff jellegu lekeres (jo, pont forditva, az kell ami nincs a diff-ben). Vagy ha rendezni tudod "kint", kis eroforrassal, esetleg valamelyiket mar eleve ugy tartani, akkor egy osszefuzes-szeru algoval tudsz egyformakat listazni. Persze ezek a sorrendet osszezavarjak, az elso megoldas nem.szerk. EQ, bocs, nem neztem, a lenyeg kb. ugyanaz, a set sztem stringeknel try lesz. Csak messzirol raneztem a kodra es felreertettem hgoy dupla for van egymasban, de hat latszik hogy en vagyok feluletes (meg faradt).
-
EQMontoya
veterán
Én azt csinálnám, hogy a kisebbet benyalnám fixen egy setbe (az ugye elég gyorsan kereshető), majd a nagyobbat olvasnám végig soronként, és ha benne van a beolvasott sor a setben, akkor elmenteném/kírnám, hogy van metszet.
Kódban:
words = set()
with open(kisfile) as kf:
for line in kf:
words.add(line)
with open(nagyfile) as nf:
for line in nf:
if line in words:
print "Yahoo!!!"
Új hozzászólás Aktív témák
- PlayStation 4/5 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- PlayStation 5/4 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX ONE/Series kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX Series S 512GB, 6 hó garanciával Bp-i üzletből eladó!
- Dell Latitude 5400 / i5-8365u / 8Gb DDR4 / 256Gb SSD / FHD IPS / Excellent akku
- Bomba ár! Dell Latitude E5550 - i3-5GEN I 8GB I 128GB SSD I 15,6" HD I W10 I HDMI I Cam I Gari!
- Microsoft Windows, Office & Vírusirtók: Akciók, Azonnali Szállítás, Garantált Minőség, Garancia!
- ismét elérhető 3db - Sennheiser MOMENTUM 4 fejhallgatók
- 15" Workstation: Lenovo Thinkpad P1 gen2 // P52s // P15 gen1 // FHD, 4K oled touch
- OLCSÓ MONITOROK
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged