Portál AbcLinuxu, 26. dubna 2024 16:46


Dotaz: python prehladavanie v zoznamoch

26.1.2013 23:09 boy157
python prehladavanie v zoznamoch
Přečteno: 232×
Odpovědět | Admin
vie mi niekto pomoct s tymto: mal by som vstupny subor z ktoreho by sa kazdy riadok nacital do noveho zoznamu moja otazka je ako porovnat kazdy zoznam s kazdym a vyhladat rovnake zoznamy.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.1.2013 23:30 l4m4
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nenačítej řádek do seznamu, ale do tuple, ty jsou nemodifikovatelné a hashovatelné (pokud je skutečně potřebuješ měnit, tak si z nich udělej list později). Pak je můžeš snadno dávat do set nebo hash a porovnání, zda už jsi dříve stejný načetl, je triviální -- operátorem in.
26.1.2013 23:43 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak tu ide o to ze tie riadky budu z bash skriptu, kde musim brat do uvahy ze sa budu lisit v premennych a pod.a aj tie oznacit za rovnake ..preto to potrebujem mat v zoznamoch.
26.1.2013 23:58 l4m4
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
A jak konkrétně to znemožňuje udělat, co jsem napsal?
27.1.2013 11:39 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Odpovědět | | Sbalit | Link | Blokovat | Admin
a cez tie tuple mi nenajde iba uplne rovnake retazce? ci tiez si tam mozem v nich dat nejaku podmienku aby mi bralo do uvahy aj nejake rozdiely, ktore by som definoval napr. cez regularne vyrazy?
27.1.2013 11:55 chrono
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Ak sa tam bude ukladať ten reťazec v "normalizovanom" tvare (a teda bude tam len tá časť, ktorá sa má porovnávať...), tak sa tam ten reťazec nájde. :)
27.1.2013 12:11 l4m4
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Otázka zní, zda chceš jednoduchý O(n2) algoritmus, protože těch záznamů bude deset, nebo něco inteligentnějšího, protože těch záznamů možná bude deset milionů.

Pokud chceš O(n2) algoritmus, tak prostě při načtení každého řádku projdeš všechny předchozí záznamy a ten právě načtený s nimi porovnáš.

Pokud chceš něco inteligentního a tvá porovnávací relace je ekvivalence (reflexivní, symetrická a tranzitivní), tak, jak píše chrono, jako klíče použiješ nějaké normalizované verze.
27.1.2013 13:02 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Odpovědět | | Sbalit | Link | Blokovat | Admin
no to bude nieco asi inteligentjesie kedze sa tam budu nacitavat dane skripty kde sa musia hladat najcastejsie sa opakujuce casti kodu pricom sa musia brat do uvahy rozdiely v premennych a podobne, kotre sa potom z danych retazcov odstrania a bude moznost si tam dopisat vlastne premenne..

ale akurat ma napada ci pri nejakom takom skripte bude stacit porovnavat riadky,ci nebude mozno treba aj mozno nejake cele konstrukcie...

co poviete?
27.1.2013 13:42 l4m4
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Na to řeknu, že si počkám, že se definitivně dozvíme, co se snažíš dělat. Potom se snad dají navrhnout vhodné datové struktury a algoritmy. Teď to totiž zrovna vypadá, že se snažíš dělat refaktorizaci/AST transformaci/... přímo nad zdrojovým kódem.
27.1.2013 14:05 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak snazim sa urobit program co ti ulahci vytvarat bash skripty a to tym sposobom ze dany program si nacita uz hotove skripty ale mu ich napises a on bude vyhladavat najcastejsie sa opakujuce casti kodu, kde najprv som rozmyslal ze by to boli jednotlive riadky ale teraz ma napadlo ze by to mohlo byt aj nieco viac ako len 1 riadok.A dane opakujuce casti usporiada podla frekvencie pouzitia. A ked si budes chciet vutvorit nejaky novy skript tak si v nom len kliknes na konstrukciu ktora ti bude pasovat do tvojho skriptu dopises svoje premnene a je to.

Snad uz to je jasnejsie
27.1.2013 14:31 chrono
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Podľa mňa bude oveľa jednoduchšie vytvoriť tú databázu skriptov/funkcií/konštrukcií/... ručne, ako pokúšať sa vytvoriť niečo, čo dokáže také údaje vybrať z náhodných skriptov.
27.1.2013 15:06 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
mozno by to bolo jednoduchsie ale zadanie nepusti :D
27.1.2013 15:50 yad
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
A ako definuješ podobné úskey kódu? To o čo sa snažiš je AST, ale to je natoľko abstraktná záležitosť, že musíš konkretizvať, čo chceš. Tam nebude stačiť niečo ako "x.is_like(y)".

Niečo na DSL:

http://pypi.python.org/pypi/ply/3.4 http://pypi.python.org/pypi/pyparsing/2.0.0

Veľa šťastia
27.1.2013 16:01 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
ved to ze neviem ako to mam celkom riesit, lebo porovnavat iba riadky sa mi nezda najlepsie riesenie. pri takychto bash skriptoch by to bola blbost...to uz aspon nejake cykly alebo nieco podobne aby vyhladavalo, no sam este neviem ...musi to byt univerzalne
27.1.2013 16:25 chrono
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
Ak tie skripty nevytvoril jediný človek vo veľmi krátkom období, tak tie skripty budú pravdepodobne tak rôznorodé, že nič rozumné sa z nich nebude dať získať. :)
27.1.2013 16:35 boy157
Rozbalit Rozbalit vše Re: python prehladavanie v zoznamoch
ved to ma tiez napadlo preto som to chcel riesit len porovnavanim tych riadkov mozno z toho by sa to este dalo nieco ziskat..zas nechcem zasahovat do neviem akych extremnych rieseni...hladam take schodne riesenie pre mna :) zeby to fungovalo a robilo priblizne co ma...nechcem vynajst zemegulu :D Skor mi to pride uzitocne pre nejake mansie skriptiky kde sa pouzivaju len nejake jednoduche cykly a take prkotinky...

cize co si myslis ako to bude dobre riesit? porovnavat len riadky ci nieco viac?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.