ich habe folgende Klasse, die für mich meine Dictionaries verwalten soll.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import re
class DataHandler:
def __init__(self):
self.data=dict()
def addData(self,cat,data):
self.data[cat][len(self.data[cat])]=data
def addCategory(self,cat):
self.data[cat]=dict()
def delData(self,id_set):
for cat,id_list in id_set.items():
for id in id_list:
del self.data[cat][id]
def searchData(self,search):
return_set=dict()
r=re.compile(r'(\W)*'+search+'(\W)*',re.IGNORECASE)
for cat in self.data.keys():
return_set[cat]=list()
for id in self.data[cat].keys():
for value in self.data[cat][id].values():
if r.search(value):
return_set[cat].append(id)
return return_set
def getWholeData(self):
return self.data
def getDataId(self,search):
return self.searchData(search)
dh=DataHandler()
data = {
1: {"sprache1": u"Vornam (öäü)", "sprache2": u"first name"},
2: {"sprache1": u"Nachnam (öäü)", "sprache2": u"last name"},
3: {"sprache1": u"Tisch (öäü)", "sprache2": u"Table"},
4: {"sprache1": u"Tabelle (öäü)", "sprache2": u"Table"},
}
dh.addCategory('vocab')
dh.addCategory('abc')
dh.addData('vocab',data[1])
dh.addData('vocab',data[2])
dh.addData('vocab',data[3])
dh.addData('abc',data[3])
dh.addData('vocab',data[4])
print dh.getDataId(u'last name')
print dh.getDataId(u'Table')
print dh.getDataId(u'name')
print '\n','-'*10,'Suche beendet','-'*10,'\n'
print dh.getWholeData()
print '\n','-'*10,'-'*10,'\n'
del_set1=dh.getDataId(u'Table')
dh.delData(del_set1)
print dh.getWholeData()
Code: Alles auswählen
python dictest.py
{'vocab': [1], 'abc': []}
{'vocab': [2, 3], 'abc': [0]}
{'vocab': [0, 1], 'abc': []}
---------- Suche beendet ----------
{'vocab': {0: {'sprache1': u'Vornam (\xf6\xe4\xfc)', 'sprache2': u'first name'},
1: {'sprache1': u'Nachnam (\xf6\xe4\xfc)', 'sprache2': u'last name'}, 2: {'spra
che1': u'Tisch (\xf6\xe4\xfc)', 'sprache2': u'Table'}, 3: {'sprache1': u'Tabelle
(\xf6\xe4\xfc)', 'sprache2': u'Table'}}, 'abc': {0: {'sprache1': u'Tisch (\xf6\
xe4\xfc)', 'sprache2': u'Table'}}}
---------- ----------
---------- ----------
{'vocab': {0: {'sprache1': u'Vornam (\xf6\xe4\xfc)', 'sprache2': u'first name'},
1: {'sprache1': u'Nachnam (\xf6\xe4\xfc)', 'sprache2': u'last name'}}, 'abc': {
}}
LG Tobi
P.S.:Wenn jemand vebresserungsvorschläge hat - immer her damit =)