首先,我确实知道这是一个非常简单的问题,请耐心等待。
如何在python中获取字符串的数量?我想做这样的事情:
def func(input_strings):
# Make the input_strings iterable
if len(input_strings) == 1:
input_strings = (input_strings, )
# Do something
for input_string in input_strings:
analyze_string(input_string)
return
所以使用这个函数,如果输入是一个列表,['string1','string2','string3'],它将循环遍历它们;如果输入只是一个字符串,如'string1',那么它仍然会处理它,而不是抛出异常。
但是,len(str)返回字符串中的字符数,并且不会给我“1”。
我真的很感谢你的帮助!
答案 0 :(得分:5)
使用isinstance
检查给定值是否为字符串:
>>> isinstance('a-string', str)
True
>>> isinstance(['a-string', 'another-string'], str)
False
def func(input_strings):
# Make the input_strings iterable
if isinstance(input_strings, str):
input_strings = (input_strings, )
# Do something
for input_string in input_strings:
analyze_string(input_string)
return
Python 2.x note(Python 2.3 +)
如果您还要测试unicode,请使用isinstance('a-string', basestring)
。 (basestring
是str
和unicode
)的超类。
答案 1 :(得分:4)
我建议使用*args
来允许函数接受任意数量的字符串。
def func(*input_strings):
for input_string in input_strings:
analyze_string(input_string)
func("one string")
func("lots", "of", "strings")
如果您想要字符串数,可以简单地使用len(input_strings)
。