checking if a list is empty
Philip Semanchuk
philip at semanchuk.com
Fri May 6 18:21:09 EDT 2011
On May 6, 2011, at 5:57 PM, scattered wrote:
> On May 6, 2:36 am, Jabba Laci <jabba.l... at gmail.com> wrote:
>> Hi,
>>
>> If I want to check if a list is empty, which is the more pythonic way?
>>
>> li = []
>>
>> (1) if len(li) == 0:
>> ...
>> or
>> (2) if not li:
>> ...
>>
>> Thanks,
>>
>> Laszlo
>
> is there any problem with
>
> (3) if li == []:
>
> ?
What if it's not a list but a tuple or a numpy array? Often I just want to iterate through an element's items and I don't care if it's a list, set, etc. For instance, given this function definition --
def print_items(an_iterable):
if not an_iterable:
print "The iterable is empty"
else:
for item in an_iterable:
print item
I get the output I want with all of these calls:
print_items( list() )
print_items( tuple() )
print_items( set() )
print_items( numpy.array([]) )
Given this slightly different definition, only the first call gives me the output I expect:
def print_items(an_iterable):
if an_iterable == []:
print "The iterable is empty"
else:
for item in an_iterable:
print item
I find I use the the former style ("if not an_iterable") almost exclusively.
bye
Philip
More information about the Python-list
mailing list