计算字符串数量

时间:2013-09-12 01:34:45

标签: python

首先,我确实知道这是一个非常简单的问题,请耐心等待。

如何在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”。

我真的很感谢你的帮助!

2 个答案:

答案 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)。 (basestringstrunicode)的超类。

答案 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)

查看these answers