簡體   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