Portál AbcLinuxu, 9. května 2025 02:43
def only_multiple_occurences(d): return dict((k, v) for k, v in d.iteritems() if len(v) > 1) def add_to_dict_list(d, k, x): if k in d: d[k].append(x) else: d[k] = [x] k=open('out', 'r') text = k.read() words = list(re.findall(r'\S+', text)) nwords = len(words) n = 2 allngrams = [None, words, {}] ngrams = allngrams[n] for i in range(nwords+1-n): add_to_dict_list(ngrams, tuple(words[i:i+2]), i) allngrams[n] = only_multiple_occurences(ngrams) while allngrams[n]: prevngrams = allngrams[n] n += 1 allngrams.append({}) ngrams = allngrams[n] for prevngram, positions in prevngrams.iteritems(): for i in positions: if i + n <= nwords: add_to_dict_list(ngrams, prevngram + (words[i+n-1],), i) allngrams[n] = only_multiple_occurences(ngrams) n -= 1 excluded = {} zoznam =[] out={} a = 1 while n >= 2: nextexcluded = set() for ngram, positions in allngrams[n].iteritems(): if ngram not in excluded: zoznam.append([' %u ' % len(positions)] + [' '.join(ngram) ]) nextexcluded.add(tuple(ngram[1:])) nextexcluded.add(tuple(ngram[:-1])) excluded = nextexcluded n -= 1 zoznam.sort() zoznam.reverse() index = 0 for t in zoznam: index += 1 t = [index,] + t zoznam[index-1] = t
Vtedy by som potreboval updatovať treeview, lenže dané pole z ktorého sa ťahajúu údaje sa však nezmenilo od začiatku programu.Této větě tak úplně nerozumím. TreeView zobrazuje nějaký TreeModel, nějaké náhodné datové struktury jsou irelevantní. Když dostanu nová data, přidám je do modelu, view je automaticky zobrazí. Takže problém je, že (a) vůbec nevíš, že dostaneš nová data -- v tom případě chybí nějaká komunikace mezi částmi programu (b) máš nová data, máš tree view model a nevíš, co dělat -- v tom případě se bez znalosti, jak vypadá ten model a jak je z těch dat konstruován, dá poradit jedině to samé co předtím: musíš nová data přidat do modelu (c) máš data, ale je příliš složité je rozdělit na nová a stará -- v tom případě prostě vytvoř nový model a použij set_model() to funguje a neukázal jsi žádný protipříklad
def create_model(self): store = Gtk.ListStore(int,str,str) for item in Load.zoznam: store.append([item[0],item[1],item[2]]) return storea protipríklad asi nieje potrebný, kedže set_model(), by fungoval kebyže sa mi po pridaní nových dát aktualizuje "zoznam"
Jak v pythonu detekuji, že se změnil soubor?? Viz https://github.com/seb-m/pyinotify/blob/master/python2/examples/loop.py, přičemž budeš asi chtít sledovat událost IN_CLOSE_WRITE.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.