# [Tutor] learning curve

Daniel Klose perlmunky at googlemail.com
Mon Jan 29 16:13:54 CET 2007

```Hi all,

All I would like to do is take a file and count the number of times a
letter occurs in it.  It so happens that there letters are amino acids.
There are also some other checks in the script but these are not a
concern just yet.

What I would like to do is create a dictionary of arrays.
In perl (my current scripting language of choice) I would simply put:
\${\$dictionary{\$key}}[\$element] += 1
I have no idea how to create this kind of structure in python.

Also I have a while loop.  If this were perl, rather than using the i =
0 while(i < len(x)):
I would do : for (my \$i = 0; \$i < @array; \$i++) {}.  I have found the
range function but I am not sure how to use it properly.
What I would like to do is create an index that allows me to access the
same element in two arrays (lists) of identical size.

I have pasted in my current code below, I would be very grateful if you
could help me trim up this code.
#!/usr/bin/python

import sys, os

structDir = '/home/danny/dataset/structure/'
seqDir   = '/home/danny/dataset/sequence/'

target = sys.argv[1]

seqFile = seqDir      + target
strFile = structDir   + target

seqDictionary = {}

if (os.path.isfile(seqFile) and os.path.isfile(strFile)):

structureHandle = open(strFile)

sequenceHandle  = open(seqFile)

strArray = list(structureString)
seqArray = list(sequenceString)

if len(strArray) == len(seqArray):
print "Length match\n"

i=0
while(i < len(strArray)):
if seqDictionary.has_key(seqArray[i]):
seqDictionary[seqArray[i]] += 1
else:
seqDictionary[seqArray[i]] = 1

i += 1

else:
print "Some data is missing!\n"
```