python:在序列中找到最大或最小元素


. 問題

在某個集合中找出最大或最小的一個元素,或者n個元素。

. 解決方案

找出最大或最小的一個元素,例如:

b = [10123456789]

print(min(b))
print(max(b))

找出最大或最小的n個元素,源數據必須是序列(str、tuple、list、set)類型,例如:

import heapq

b = [10123456789]

print(heapq.nlargest(2, b))
print(heapq.nsmallest(2, b))

取出的元素返回的是列表(list)類型,2代表的是取幾個值,如果指定所取的值大於b中的所存儲的元素數量,則返回全部,例如:

import heapq

b = (10123456789)

print(heapq.nlargest(20, b))
print(heapq.nsmallest(20, b))

# 運行結果
[10987654321]
[12345678910]

Process finished with exit code 0

nlargest()nsmallest()這兩個函數都可以接受一個參數key,例如:

import heapq


b = [
    {"title""芹菜""serving"10"price"10.46},
    {"title""茄子""serving"20"price"15.66},
    {"title""香菇""serving"10"price"20.99},
    {"title""絲瓜""serving"10"price"9.99},
    {"title""冬瓜""serving"10"price"4.99},
]

print(heapq.nlargest(2, b, key=lambda s: s["price"]))
print(heapq.nsmallest(2, b, key=lambda s: s["price"]))

# 運行結果
[{'title''香菇''serving'10'price'20.99}, {'title''茄子''serving'20'price'15.66}]
[{'title''冬瓜''serving'10'price'4.99}, {'title''絲瓜''serving'10'price'9.99}]

Process finished with exit code 0

. 總結一句話

當你想找的元素數量相對較小時(數量很大的話不考慮這個),使用nlargest()nsmallest()這兩個函數是最合適的,如果你只是簡單的想找到最小或最大的元素,那就用max()min()會更加塊。


以上總結或許能幫助到你,或許幫助不到你,但還是希望能幫助到你,如有疑問、歧義,直接私信留言會及時修正發布;非常期待你的點贊和分享喲,謝謝!

未完,待續…

一直都在努力,希望您也是!

微信搜索公眾號:就用python


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM