Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to update values of keys in dictionary in python?

I have a list of possible triplets. I ran a sliding window to calculate the possible triplets and store the values in a list. I have also created a dictionary with the possible triplets as "key" and have initiated the values of those keys as "0". I have written a code that runs through the list to first find a triplet, then search whether that triplet is in the dictionary and if it is there then update the value of the specific key.

trip = '1234'
window_size=3
seq_triplet = []
for i in range(len(trip) - window_size + 1):
    z = trip[i: i + window_size]
    seq_triplet.append(z)
print(seq_triplet)

The output of the following code is:

['123', '234']

The dictionary that I have is:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

triplet_dict = {'111':0,'112':0,'113':0,'114':0,'121':0,'122':0,'123':0,'124':0,
     '131':0,'132':0,'133':0,'134':0,'141':0,'142':0,'143':0,'144':0,'211':0,
     '212':0,'213':0,'214':0,'221':0,'222':0,'223':0,'224':0,'231':0,'232':0,
     '233':0,'234':0,'235':0,'236':0,'237':0,'241':0,'242':0,'243':0,'244':0,
     '311':0,'312':0,'313':0,'314':0,'321':0,'322':0,'323':0,'324':0,'331':0,
     '332':0,'333':0,'334':0,'341':0,'342':0,'343':0,'344':0,'411':0,'412':0,
     '413':0,'414':0,'421':0,'422':0,'423':0,'424':0,'431':0,'432':0,'433':0,
     '434':0,'441':0,'442':0,'443':0,'444':0}

I have written the following code but it seems to fail.

for i in range(len(seq_triplet)):
    if(seq_triplet[i] in triplet_dict):
        seq_triplet[i] +=1

Any idea where I might be going wrong. Any help would be much appreciated. Thanks

>Solution :

You can access the dict directly using the key. No need to get the index and the value from the index.

In [1]: triplet_dict = {'111':0,'112':0,'113':0,'114':0,'121':0,'122':0,'123':0,'124':0,
   ...:      '131':0,'132':0,'133':0,'134':0,'141':0,'142':0,'143':0,'144':0,'211':0,
   ...:      '212':0,'213':0,'214':0,'221':0,'222':0,'223':0,'224':0,'231':0,'232':0,
   ...:      '233':0,'234':0,'235':0,'236':0,'237':0,'241':0,'242':0,'243':0,'244':0,
   ...:      '311':0,'312':0,'313':0,'314':0,'321':0,'322':0,'323':0,'324':0,'331':0,
   ...:      '332':0,'333':0,'334':0,'341':0,'342':0,'343':0,'344':0,'411':0,'412':0,
   ...:      '413':0,'414':0,'421':0,'422':0,'423':0,'424':0,'431':0,'432':0,'433':0,
   ...:      '434':0,'441':0,'442':0,'443':0,'444':0}

In [2]: triplet_dict['111']
Out[2]: 0

In [3]: triplet_dict['111'] += 1

In [4]: triplet_dict['111']
Out[4]: 1

In [5]: seq_triplet = ['123', '234']

In [6]: for each in seq_triplet:
   ...:     triplet_dict[each] += 7

In [8]: triplet_dict['123']
Out[8]: 7

In [9]: triplet_dict['234']
Out[9]: 7

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading