繁体   English   中英

如何根据相关值获取最大项目?

[英]How to get the max item based on a dependent value?

我有这个数组:

array = ["a\nb", "c", "d"]

我想找出哪个数组的元素有更多行以及多少行。 我想要python中的红宝石代码:

array.map {|e| e.split("\n").size }.max #=> 2

这可行,但是我想知道是否有更好的方法:

bigger = 0
for e in array:
    e_lines = len(e.split('\n'))
    if e_lines > bigger:
        bigger = e_lines

你可以做:

max(array, key=lambda x: x.count('\n'))

然后只获取结果对象的.count('\\n') + 1也可以知道有多少

In [54]: array = ["a\nb", "c", "d"]
In [56]: max(e.count("\n") for e in array)+1
Out[56]: 2

如果还需要最大行数的(可能是非唯一的)元素:

In [60]: max((e.count("\n")+1, e) for e in array)
Out[60]: (2, 'a\nb')

如果您想要确切的功能,那就是这样:

>>> array = ["a\nb", "c", "d"]
>>> [len(l.split('\n')) for l in array]
[2, 1, 1]
>>> max(len(l.split('\n')) for l in array)
2

但是unutbu的解决方案可能更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM