当前位置: 首页 > 面试题库 >

映射python字典中的值

陶修洁
2023-03-14
问题内容

给定一个字典,{ k1: v1, k2: v2 ... }我想{ k1: f(v1), k2: f(v2) ... }提供一个函数f

有内置功能吗?还是我必须做

dict([(k, f(v)) for (k, v) in my_dictionary.iteritems()])

理想情况下,我只会写

my_dictionary.map_values(f)

要么

my_dictionary.mutate_values_with(f)

也就是说,对原始词典进行了突变还是创建副本对我来说都没有关系。


问题答案:

没有这样的功能;最简单的方法是使用dict理解:

my_dictionary = {k: f(v) for k, v in my_dictionary.items()}

在python 2.7中,请使用.iteritems()方法而不是.items()节省内存。dict理解语法直到python 2.7才引入。

注意,列表上也没有这种方法。您将不得不使用列表推导或map()函数。

这样,您也可以使用该map()函数来处理字典:

my_dictionary = dict(map(lambda kv: (kv[0], f(kv[1])), my_dictionary.iteritems()))

但这确实不是那么容易理解。



 类似资料:
  • 映射或字典类型,一种键值对的映射关系存储结构。定义方式为mapping(_KeyType => _KeyValue)。键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。 映射可以被视作为一个哈希表,其中所有可能的键已被虚拟化的创建,被映射到一个默认值(二进制表示的零)。但在映射表中,我们并不存储键的数据,仅仅存储它的keccak256哈希值,用来查找值时使用。 因此,映射

  • 问题内容: 给定这样的字典: 如何将这张地图倒置即可: 问题答案: 对于Python 2.7.x 对于

  • 本文向大家介绍Python中字典映射类型的学习教程,包括了Python中字典映射类型的学习教程的使用技巧和注意事项,需要的朋友参考一下 字典是python语言中唯一的映射类型,用花括号{}表示,一个字典条目就是一个键值对,方法keys()返回字典的键列表,values()返回字典的值列表,items()返回字典的键值对列表。字典中的值没有任何限制,它们可以是任意python对象,但字典中的键是有类

  • map 翻译过来就是字典或者映射,可以把 map 看做是切片的升级版 切片是用来存储一组相同类型的数据的,map也是用来存储一组相同类型的数据的 在切片中我们可以通过索引获取对应的元素,在 map 中我们可以通过key获取对应的元素 切片的索引是系统自动生成的,从0开始递增,map 中的 key 需要我们自己指定 只要是可以做 ==、!= 判断的数据类型都可以作为 key(数值类型、字符串、数组、

  • 我正在研究这样的句子结构: 我现在需要所有可能的组合从字典中形成这个句子,比如:

  • 问题 怎样实现一个键对应多个值的字典(也叫 multidict)? 解决方案 一个字典就是一个键对应一个单值的映射。如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面。比如,你可以像下面这样构造这样的字典: d = { 'a' : [1, 2, 3], 'b' : [4, 5] } e = { 'a' : {1, 2, 3},