Check if input is a list/tuple of strings or a single string Check if input is a list/tuple of strings or a single string python python

Check if input is a list/tuple of strings or a single string


You can check if a variable is a string or unicode string with

  • Python 3:
    isinstance(some_object, str)
  • Python 2:
    isinstance(some_object, basestring)

This will return True for both strings and unicode strings

As you are using python 2.5, you could do something like this:

if isinstance(some_object, basestring):    ...elif all(isinstance(item, basestring) for item in some_object): # check iterable for stringness of all items. Will raise TypeError if some_object is not iterable    ...else:    raise TypeError # or something along that line

Stringness is probably not a word, but I hope you get the idea


isinstance is an option:

In [2]: isinstance("a", str)Out[2]: TrueIn [3]: isinstance([], str)Out[3]: FalseIn [4]: isinstance([], list)Out[4]: TrueIn [5]: isinstance("", list)Out[5]: False


Type checking:

def func(arg):    if not isinstance(arg, (list, tuple)):        arg = [arg]    # processfunc('abc')func(['abc', '123'])

Varargs:

def func(*arg):    # processfunc('abc')func('abc', '123')func(*['abc', '123'])