Python: 如何比较作为参数的几个字符串的长度?

Python: How to compare the length of several strings which are parameters?

我想得到的是一个比较几个参数长度的函数,这些参数都是字符串。

类似于(伪代码):

def check_length(*args):
    if args[0] == args[1] == ... == args[n]:
        do_something

到目前为止,我开发了以下代码,但我确信一定存在更好的方法,因为这是成对比较:

def checkLen(*args):
    arg_list = []
    for index_A in range(len(args)):
        for index_B in range(len(args)):
            if index_B > index_A:
                if len(args[index_A]) == len(args[index_B]):
                    pass
                else:
                    raise Exception

感谢大家。 =)

您可以使用 all:

def check_length(*args):
    if all(args[0] == _arg for _arg in args[1:]):
        do_something

您可以在生成器表达式中应用任何您想要的逻辑,如果任何 args[0] == _arg 的计算结果为 False,那么所有这些都将 short-circuit 否则计算结果为 True。如果要检查所有长度:

if all(len(args[0]) == len(_arg) for _arg in args[1:]):

如果您想在任何长度不相同时引发错误,请检查它们是否 not all(...:

def check_length(*args):
    if not all(len(args[0]) == len(_arg) for _arg in args[1:]):
        raise ValueError("All parameters must be the same length.")
    do_something

只需使用一个常规的 for 循环。

def checkLen(*args):
    match = True
    for i in range(1,len(args)):
        if(len(args[i-1]) != len(args[i])):
            match = False    
    if match:
        do_something()