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