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()
我想得到的是一个比较几个参数长度的函数,这些参数都是字符串。
类似于(伪代码):
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()