En supposant self.table
est un dict, vous pouvez utiliser
self.table.setdefault(field,0)
Les autres sont tous semblables. Notez que si self.table
a déjà une clé field
, la valeur associée à cette clé est renvoyée. Seulement s'il n'y a pas field
clé est self.table[field]
ensemble à 0.
Edit: Peut-être est plus proche de ce que vous voulez:
import collections
class Foo(object):
def __init__(self):
self.CompleteAnalysis=collections.defaultdict(
lambda: collections.defaultdict(list))
def getFilledFields(self,sentence):
field, field_value, field_date = sentence.split('|')
field_value = field_value.strip('\n')
field_date = field_date.strip('\n')
self.CompleteAnalysis[field]['date'].append(field_date)
self.CompleteAnalysis[field]['value'].append(field_value)
foo=Foo()
foo.getFilledFields('A|1|2000-1-1')
foo.getFilledFields('A|2|2000-1-2')
print(foo.CompleteAnalysis['A']['date'])
# ['2000-1-1', '2000-1-2']
print(foo.CompleteAnalysis['A']['value'])
# ['1', '2']
Au lieu de garder une trace du comte, peut-être tout simplement prendre la longueur de la liste:
print(len(foo.CompleteAnalysis['A']['value']))
# 2
merci une autre requête, comment puis-je définir self.table [nomtable] [field] [count] = 0 – Jayanth
Essayer quelque chose comme ça, mais ne fonctionne pas. : - (( getFilledFields def (auto, phrase): count = 0 date = [] valeur = [] champ = sentence.split ('|') [0] = field_value sentence.split ('| ') [1] .strip (' \ n ') field_date = phrase.split (' | ') [2] .strip (' \ n ') essayez: self.CompleteAnalysis [field] [count] = self .CompleteAnalysis [field] [count] + 1 sauf: self.CompleteAnalysis [field] [count] = 0 self.CompleteAnalysis [champ] [date] .append (champ_date) self.CompleteAnalysis [champ] [valeur] .append (field_value) – Jayanth
Pourriez-vous ajouter à votre question à quoi ressemble un exemple de phrase et ce que vous voulez. CompleteAnalysis à ressembler après un appel à 'self.getFilledFields (phrase)'? J'ai une supposition mais je ne suis pas tout à fait sûr. – unutbu