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