字典的運算

阿裏雲問答 2022-01-07 19:43:02 阅读数:410

字典

怎樣在數據字典中執行一些計算操作(比如求最小值、最大值、排序等等)?




采納答案1:
考慮下面的股票名和價格映射字典:prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75}為了對字典值執行計算操作,通常需要使用 zip() 函數先將鍵和值反轉過來。 比如,下面是查找最小和最大股票價格和股票值的代碼:min_price = min(zip(prices.values(), prices.keys()))# min_price is (10.75, 'FB')max_price = max(zip(prices.values(), prices.keys()))# max_price is (612.78, 'AAPL')類似的,可以使用 zip() 和 sorted() 函數來排列字典數據:prices_sorted = sorted(zip(prices.values(), prices.keys()))# prices_sorted is [(10.75, 'FB'), (37.2, 'HPQ'),# (45.23, 'ACME'), (205.55, 'IBM'),# (612.78, 'AAPL')]執行這些計算的時候,需要注意的是 zip() 函數創建的是一個只能訪問一次的迭代器。 比如,下面的代碼就會產生錯誤:prices_and_names = zip(prices.values(), prices.keys())print(min(prices_and_names)) # OKprint(max(prices_and_names)) # ValueError: max() arg is an empty

版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071943019139.html