I am working on the folowing code, which basically counts every letter in a given text.
I want to store the numbers in letter names:
A=1
B=3
and so on...
I guess it stores the number underthe name 'letter', but not under the corresponding letter 'A'.
It would be great if someone can help.
thanks

text='ARARAKHTLROGKFMBLFKKGOHMFDGRKLRNGROGINFBLMNFBAEKJGFGOQEITHRGLFDKBN'
abc='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
textletters= list(text)
abcletters= list(abc)
for letter in abcletters:
      letter=textletters.count(letter)
print A

Recommended Answers

All 4 Replies

If you use a Python container called a dictionary, you can come close to what you aspire ...

text = 'ARARAKHTLROGKFMBLFKKGOHMFDGRKLRNGROGINFBLMNFBAEKJGFGOQEITHRGLFDKBN'

abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

# create a letter dictionary with character:frequency pairs
letter = {}
for c in text:
    letter[c] = letter.get(c, 0) + 1

print letter['A']  # 4
print letter['R']  # 7

for c in abc:
    if c in letter:
        print c, letter[c]

"""my output -->
A 4
B 4
D 2
E 2
F 7
G 8
H 3
I 2
J 1
K 7
L 5
M 3
N 4
O 4
Q 1
R 7
T 2
"""

If you use a Python container called a dictionary, you can come close to what you aspire ...

text = 'ARARAKHTLROGKFMBLFKKGOHMFDGRKLRNGROGINFBLMNFBAEKJGFGOQEITHRGLFDKBN'

abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

# create a letter dictionary with character:frequency pairs
letter = {}
for c in text:
    letter[c] = letter.get(c, 0) + 1

print letter['A']  # 4
print letter['R']  # 7

for c in abc:
    if c in letter:
        print c, letter[c]

"""my output -->
A 4
B 4
D 2
E 2
F 7
G 8
H 3
I 2
J 1
K 7
L 5
M 3
N 4
O 4
Q 1
R 7
T 2
"""

Thanks a lot for the quick reply.

Another way you can look at.

text = 'ARARAKHTLROGKFMBLFKKGOHMFDGRKLRNGROGINFBLMNFBAEKJGFGOQEITHRGLFDKBN'
abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

textletters = list(text)
abcletters = list(abc)

my_list = []
for letter in abcletters:
      letter = textletters.count(letter)
      my_list.append(letter)

#Now we have a list,but not easy to understand
print my_list

'''zip demo-->
>>> l = ['a','b','c']
>>> n = [1,2,3]
>>> zip(l,n)
[('a', 1), ('b', 2), ('c', 3)]
'''

#We can use zip in a for loop to par it up
for item, letters in zip(my_list, abcletters):
    print item,letters

'''Out-->
[4, 4, 0, 2, 2, 7, 8, 3, 2, 1, 7, 5, 3, 4, 4, 0, 1, 7, 0, 2, 0, 0, 0, 0, 0, 0]
4 A
4 B
0 C
2 D
2 E
7 F
8 G
3 H
2 I
1 J
7 K
5 L
3 M
4 N
4 O
0 P
1 Q
7 R
0 S
2 T
0 U
0 V
0 W
0 X
0 Y
0 Z
'''

And there is the dict counting as comes from string and sorting the found letters in end:

text = 'ARARAKHTLROGKFMBLFKKGOHMFDGRKLRNGROGINFBLMNFBAEKJGFGOQEITHRGLFDKBN'

letterc={}
for i in text:
    if i in letterc:
        letterc[i]+=1
    else:
        letterc[i]=1

for  i in sorted(letterc.keys()):
    print(i,letterc[i])
"""('A', 4)
('B', 4)
('D', 2)
('E', 2)
('F', 7)
('G', 8)
('H', 3)
('I', 2)
('J', 1)
('K', 7)
('L', 5)
('M', 3)
('N', 4)
('O', 4)
('Q', 1)
('R', 7)
('T', 2)"""

I guess though that vegaseat tried to find nice solution nearest to posters code, which for me is good way to answer.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.