美文网首页
python 数据字典模块内容

python 数据字典模块内容

作者: 天地会大中华区块链ceo | 来源:发表于2019-10-25 15:33 被阅读0次

字典排序:

zip 

假设一个字典股票名称和对应的价格间的映射:


   prices = {'ACME':45.23,

        'AAPL':612.78,

        'IBM':205.55,

        'HPQ':37.20,

        'FB':10.75}



对字典内容做有用的计算,会利用zip()将字典的键和值反转过来,再排序计算的时候,是按zip()生成的第一列作为排序依据的例如:


min_price = min(zip(prices.values(), prices.keys()))

   reults:(10.75, 'FB')   

min(zip(prices.keys(), prices.values()))

   reults:('AAPL', 612.78)


同样的,要对数据进行排序只需要使用zip()再配合sorted()就可以了


sorted(zip(prices.values(), prices.keys()))

   results:[(10.75, 'FB'),

               (37.2, 'HPQ'),

               (45.23, 'ACME'),

               (205.55, 'IBM'),

               (612.78, 'AAPL')]



在进行计算的时候,zip()创建了一个迭代器,它的内容只能被消费一次

 
对一个字典,如果直接对其进行处理,他们通常只会处理键,而不是值,

例如:min(prices)   #  AAPL

尝试用值处理问题时,min(prices.values()) # 返回的是比较结果,不是值。

通常较为理想的结果就是向函数中传入参数,min(prices, key=lambda k:prices[k]) # 'FB'

如果要找到最小值则需要进行二次查找;prices[min(prices, key=lambda k:prices[k])]

以上比较过程如果只用一个语句来进行比较的话,就可以利用zip,min(zip(prices.keys(), prices.values()));

当两个key值的value相同时,则返回拥有最大或者最小的key值的目录

比如:prices = {'AAA':45.23,

        'ZZZ':45.23}


字典比较:

字典中如何把值化为集合:


  b = {'w':10,

    'x':11,

    'y':2,

    'z':2}

{value for value in b.values()}    # {2, 10, 11}

[value for value in b.values()]  # [10, 11, 2, 2]


相关文章

网友评论

      本文标题:python 数据字典模块内容

      本文链接:https://www.haomeiwen.com/subject/zfvsvctx.html