假设我有两个参数a
和b
,我希望将较小和较大的(按长度分配,如果长度相同,我不关心哪一个)到各个变量。无论哪种情况如
a == b
len(a) == len(b)
但a != b
导致(据我所知)非直截了当的解决方案:
def compare(a, b):
smallest = min([a, b], key=len)
temp = [a, b]
temp.remove(smallest) # Why does this return void?
biggest = temp[0]
do_something(smallest, biggest)
是否有更简单/更短的方式?
示例输入为foo
和bar
或hello
和hello
。
>>>smallest, biggest = min(["foo", "bar"], key=len), max(["foo", "bar"], key=len)
('foo', 'foo')
答案 0 :(得分:3)
将两个值放在一个列表中,对其进行排序,然后将其解压缩为两个变量:
smallest, biggest = sorted([a, b], key=len)