[Tutor] recursive problem
Roelof Wobben
rwobben at hotmail.com
Thu Sep 9 11:41:39 CEST 2010
From: anand.shashwat at gmail.com
Date: Thu, 9 Sep 2010 15:08:10 +0530
Subject: Re: [Tutor] recursive problem
To: rwobben at hotmail.com
CC: tutor at python.org
On Thu, Sep 9, 2010 at 2:21 PM, Roelof Wobben <rwobben at hotmail.com> wrote:
Hello,
I have this :
def recursive_count(target, nested_num_list):
"""
>>> recursive_count(2, [2, 9, [2, 1, 13, 2], 8, [2, 6]])
4
>>> recursive_count(7, [[9, [7, 1, 13, 2], 8], [7, 6]])
2
>>> recursive_count(15, [[9, [7, 1, 13, 2], 8], [2, 6]])
0
>>> recursive_count(5, [[5, [5, [1, 5], 5], 5], [5, 6]])
6
"""
for element in nested_num_list:
if type(element) == type([]):
test = recursive_count(target, element)
print element, target
if element == target :
count = count + 1
return count
if __name__ == "__main__":
import doctest
doctest.testmod()
Now I get this message :
UnboundLocalError: local variable 'count' referenced before assignment
It is because you are doing count = count + 1
But where is count defined.
But if I do this :
def recursive_count(target, nested_num_list):
"""
>>> recursive_count(2, [2, 9, [2, 1, 13, 2], 8, [2, 6]])
4
>>> recursive_count(7, [[9, [7, 1, 13, 2], 8], [7, 6]])
2
>>> recursive_count(15, [[9, [7, 1, 13, 2], 8], [2, 6]])
0
>>> recursive_count(5, [[5, [5, [1, 5], 5], 5], [5, 6]])
6
"""
count = 0
for element in nested_num_list:
if type(element) == type([]):
test = recursive_count(target, element)
print element, target
if element == target :
count = count + 1
return count
if __name__ == "__main__":
import doctest
doctest.testmod()
The count will always be 0 if a nested list is being found.
What's the python way to solve this
I am not sure what do you want to achieve by this ?
What is the problem statement ?
The problem statement is that I must count how many times the target is in the nested_list.
So I thougt that every nested list the function is called again so this list is also iterated.
Roelof
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100909/3cef90a6/attachment.html>
More information about the Tutor
mailing list