Ú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
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Melyik tápegységet vegyem?
- Autós topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Xiaomi 17 Ultra - jó az optikája
- HiFi műszaki szemmel - sztereó hangrendszerek
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Path of Exile (ARPG)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Formula-1
- További aktív témák...
- Raleno LED lámpa szett (bi-color) 2x 19,5 W, állványokkal SZINTE ÚJ
- LOQ 15AHP9 15.6" FHD IPS Ryzen 5 8645HS RTX 4050 16GB 512GB NVMe magyar vbill gar
- Asus rog fx506h
- Thinkpad X13 Gen4 13.3" FHD+ IPS i7-1365U 16GB 256GB NVMe ujjlolv gar
- Apple MacBook Air M1 13.3 - 8GB/256GB - Asztroszürke - MAGYAR - 226 Ciklus - 88% akku -
- Keresünk iPhone 14/14 Plus/14 Pro/14 Pro Max
- Eladó egy Huawei GT3 okos óra Dobozzal tőltővel
- Beszámítás! Dell SE2222H 22 60Hz FHD VA 8ms monitor garanciával hibátlan működéssel
- -55% ÚJ ASUS Zenbook 14 OLED Ryzen 7 8840HS Radeon 780m/16gb ram/512SSD/Gari 2027
- Dell Wyse 5470,14",FHD, N4100 CPU,8GB DDR4,128GB SSD,WIN11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
