Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pop(0) from empty list (including proposal for a fix) #1

Open
markfink opened this issue Nov 26, 2011 · 1 comment
Open

pop(0) from empty list (including proposal for a fix) #1

markfink opened this issue Nov 26, 2011 · 1 comment

Comments

@markfink
Copy link

hi Harry,

thanks for sharing this. It turns out to be very helpful. Unfortunately sometimes I get into trouble when your code pop from an empty list (see below).

This is my proposal for a fix but there might be a more clever alternative...
def next (prevList):
sum = 0.0
retval = ""
index = random.random ()
# Shorten prevList until it's in mapping
while toHash (prevList) not in mapping:
if prevList:
prevList.pop (0) # cant pop from empty list
else:
curr = random.choice (starts)
sent = curr.capitalize ()
prevList = [curr]
# Get a random word from the mapping, given prevList
for k, v in mapping [toHash (prevList)].iteritems ():
sum += v
if sum >= index and retval == "":
retval = k
return retval

all the best,
Mark

Traceback (most recent call last):
File "dbutils.py", line 92, in
insert_news(2000)
File "dbutils.py", line 84, in insert_news
title, content, upd_at = create_one(gen)
File "dbutils.py", line 73, in create_one
content = content + gen() + ' '
File "/home/mark/devel/boodo/boodo/boodo/utils/markovgen/generator.py", line 14, in gen
return genSentence(1)
File "/home/mark/devel/boodo/boodo/boodo/utils/markovgen/sentence.py", line 117, in genSentence
curr = next (prevList)
File "/home/mark/devel/boodo/boodo/boodo/utils/markovgen/sentence.py", line 102, in next
prevList.pop (0)
IndexError: pop from empty list

@elacsoft
Copy link

please write clear indents in else field.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants