Python: TypeError: object of type 'NoneType' has no len()
shuffle(names)
is an in-place operation. Drop the assignment.
This function returns None
and that's why you have the error:
TypeError: object of type 'NoneType' has no len()
You don't need to assign names
to list
or []
or anything else until you wish to use it.
It's neater to use a list comprehension to make the list of names.
shuffle
modifies the list you pass to it. It always returns None
If you are using a context manager (with ...
) you don't need to close the file explicitly
from random import shuffle
with open('names') as f:
names = [name.rstrip() for name in f if not name.isspace()]
shuffle(names)
assert len(names) > 100