字典dict,zip()

problem: 怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)?

answer:

eg1:

考虑下面的股票名和价格映射字典:

  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)) # OK
                           print(max(prices_and_names)) # ValueError: max() arg is an empty sequence

    eg2:

字典值相同,键不同,比较值的大小

>>> prices = { ‘AAA‘ : 45.23, ‘ZZZ‘: 45.23 }
                    >>> min(zip(prices.values(), prices.keys()))
                    (45.23, ‘AAA‘)
                   >>> max(zip(prices.values(), prices.keys()))
                   (45.23, ‘ZZZ‘)

时间: 2024-08-06 03:37:21

字典dict,zip()的相关文章

Python - 两个列表(list)组成字典(dict)

使用zip函数, 把key和value的list组合在一起, 再转成字典(dict). 代码: # -*- coding: utf-8 -*- keys = ['a', 'b', 'c'] values = [1, 2, 3] dictionary = dict(zip(keys, values)) print dictionary """ 输出: {'a': 1, 'c': 3, 'b': 2} """ 版权声明:本文为博主原创文章,未经博主允

python入门14 字典dict

字典dict是无序的key:value格式的数据序列 #coding:utf-8 #/usr/bin/python """ 2018-11-11 dinghanhua 字典 """ '''dict 无序的key:value组合 key要是不可变类型,如数字.字符串.元组 key不可重复,重复的会被最后一个覆盖 ''' dict_id = {'1':'python','2':'java','3':'javascript','4':'go','2':

python基础数据类型之字典dict和集合set及其他(for,enumerate,range)。

2.6字典dict. 2.6.1 字典的初识 1. 列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2. 列表只能按照顺序存储,数据与数据之间关联性不强. 所以针对于上的缺点,说咱们需要引入另一种容器型的数据类型,解决上面的问题,这就需要dict字典. 数据类型可以按照多种角度进行分类,就跟咱们人一样,人按照地域可以划分分为亚洲人,欧洲人,美洲人等,但是按照肤色又可以分为白种人,黄种人,黑种人,等等,数据类型可以按照不同的角度进行分类,先给大家按照可变与不可变的数据类型的

Python基础之字典dict(薄弱环节重点回顾,记不住打死自己)

字典是我Python基础里面学的最薄弱的环节,重新回顾,务必深入骨髓. Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,字典是另 一种可变容器模型,且可存储任意类型对象.具有极快的查找速度. 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组.布尔值也可以,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型. 重点就是字典的键必须是可以被哈希的,什么叫可以被哈希我说不上来,简单的说就是不可变对象. a=

Python - 字典(dict)删除元素

字典(dict)删除元素, 可以选择两种方式, dict.pop(key)和del dict[key]. 代码 # -*- coding: utf-8 -*- def remove_key(d, key): r = dict(d) del r[key] return r x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} x.pop(1) print x x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} del x[1] print x x = {1: 2,

字典dict

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 字典是无序的:键必须是唯一的,但值则不必(值可以取任何数据类型,但键key必须是不可变的,如字符串,数字或元组,但列表就不行) 不允许同一个键出现两次.创建时如果同一个键被赋值两次,后一个值会被记住 1.访问字典的值 可以使用方括号[key] 2.修改字典的值 dict = {'Name':

python中几个常见的黑盒子之“字典dict” 与 “集合set”

这里说到"字典dict" 和 "集合set"类型,首先,先了解一下,对于python来说,标准散列机制是有hash函数提供的,对于调用一个__hash__方法: >>> hash(56) 56 >>> hash("I like python") -4698211515002810579 对于这种标准散列的机制,常常用于字典类型(dict)的实现,而dict就是我们通常所说的散列表.同样,集合类型(set)也是通

Redis的字典(dict)rehash过程源代码解析

Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表.Redis小到能够存储几万记录的CACHE,大到能够存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大.Redis的核心数据结构就是字典(dict),dict在数据量不断增大的过程中.会遇到HASH(key)碰撞的问题,假设DICT不够大,碰撞的概率增大,这样单个hash 桶存储的元素会越来愈多,查询效率就会变慢.假设数据量从几千万变成几万,不断减小的过程.DICT内存却会造成不必要的浪费.Redis的d

redis源码分析(2)----字典dict

1. dict的特点 字典dict采用hash表作为底层的存储结构. 1. hash表的长度保持为2的N次方,最大长度为LONG_MAX. 2. hash表采用链式法来解决hash值冲突. 3. dict数据结构中保存了两个hash表指针,用于实现rehash的过程. 4. 为了防止大数据量情况下rehash过程过分耗时,dict采用渐进式rehash,将rehash的过程分散到每一个增删改查的操作中,从而分摊耗时. 2. dict的定义 1 //hash表元素 2 typedef struct