users.csvUserNames, userIDs ve diğer verilerin bir listesini içeren bir CSV dosyası var :
username, userid, sidebar_side, sidebar_colour
"John Lennon", 90123412, "left", "blue"
"Paul McCartny", 30923833, "left", "black"
"Ringo Starr", 77392318, "right", "blue"
"George Harrison", 72349482, "left", "green"
Başka bir dosyada kullanıcı toremove.txtkimliklerinin bir listesi var:
30923833
77392318
users.csvKimlikleri içeren dosyadaki tüm satırları kaldırmanın akıllı ve etkili bir yolu var mı toremove.txt? İki dosyayı ayrıştırmak ve yeni bir dosyaya sadece bulunmayan satırları yazmak için basit bir Python uygulaması yazdım toremove.txt, ancak olağanüstü yavaş. Belki biraz sedya da awksihir burada yardımcı olabilir mi?
Yukarıdaki örnekler göz önünde bulundurularak istenen sonuç budur:
username, userid, sidebar_side, sidebar_colour
"John Lennon", 90123412, "left", "blue"
"George Harrison", 72349482, "left", "green"
users.csvdosyanın satırları için n ve toremove.txt. Daha düşük karmaşıklıkla nasıl yapılacağından emin değilim. Bunun özü şudur: for u in users: if not any(toremove in u): outputfile.write(u). Kod İncelemesine gönderebilirim.
toremove.txtolarak girdilerini tasarruf tuşları . İd.içinde olmayanları yazdırarak users.csv dosyasını yineleyin. Sen her ikisi için işleme O (n) almak toremove.txtve users.csvve için O (n) bellek kullanımı toremove.txt(muhtemelen nispeten küçük)