我的意思是,我正在寻找返回较低值的真正短代码.例如:
a=[1,2,3,4,5,6,7,8,9,10] b=[1,2,3,4,5,6,7,8] len(a) = 10 len(b) = 8 if (fill-this-in): print(lesser-value)
我忘了补充一点,如果b低于a,我希望b返回 - 而不是len(b) - 变量b.
print(min(a, b))
你不是很清楚你想要什么,所以有一些选择.给出以下两个列表:
a = [1,2,3,4,5,6,7,8,9,10] b = [1,2,3,4,5,6,7,8]
要打印最短的列表,你可以做..
>>> print(min(a, b)) [1, 2, 3, 4, 5, 6, 7, 8]
为了获得最短的长度为号,你可以min
在len()
每个列表中,或做len(min())
(都是相同的,选择哪一个曾经你找到最可读的)..
>>> print(min( len(a), len(b) )) # or.. >>> print(len( min(a, b) )) 8
要在任一列表中打印最低值,您可以将列表作为单个参数提供给 min()
>>> a.extend(b) # Appends b to a >>> print a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8] >>> print(min(a)) 1
最后,另一种可能性,总共具有最低值的列表:
>>> max( sum(a), sum(b) ) 55
要打印最高的实际列表sum()
,您可以使用三元运算符,如...
>>> print a if sum(a) > sum(b) else b [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
..尽管我从来没有真正喜欢(或使用)它,而是使用稍长的常规if/else语句.
>>> if sum(a) > sum(b): ... print a ... else: ... print b ... [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
如果列表的长度是降低它的值(而不是它的值),那么你实际上想要:
min(a, b, key=len)
这只是偶然相当于
min(a, b)
在给定的例子中.