On 09/07/2010 01:26 PM, Baba wrote:
On 7 sep, 22:08, Gary Herron<gher...@digipen.edu> wrote:
On 09/07/2010 12:46 PM, Baba wrote:
word= 'even'
dict2 = {'i': 1, 'n': 1, 'e': 1, 'l': 2, 'v': 2}
Just go through each letter of word checking for its existence in
dict2. Return False if one misses, and True if you get through the
whole word:
def ...():
for c in word:
if c not in dict2:
return False #if any character is not in dict
return True # otherwise
If you know of generator expressions, and remember that True and False
are 1 and 0 respectively, then this works
def ...():
return sum(c in dict2 for c in word) == len(word)
Gary Herron
--
Gary Herron, PhD.
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418
ok but how do we address the fact that letter e needs to have the
value 2 in the dictionary if it was to be True? in my example this
condition is not met so the check would return False. Word is not
entirely composed of letters in dict2, one of the letter is not in
dict2 i.e. the 2nd e
Huh??? I answered the problem as it was stated in the email -- it said
nothing about *counting* the occurrences of letters. In order to not
waste our (voluntary) time, perhaps you should carefully re-state the
problem you'd liked solved. Then we'll see what we can come up with.
So finding a matching key seems to be the easy part, checking if the
number of ocurrences of letter in 'word' == letter.value seems to be
the tricky part
--
Gary Herron, PhD.
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418
--
http://mail.python.org/mailman/listinfo/python-list