Python字典中的更新方法

Python字典中的更新方法

本文介绍了Python字典中的更新方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图更新字典中的值,但遇到了两种方法:

I was trying to update values in my dictionary, I came across 2 ways to do so:

product.update(map(key, value))

product.update(key, value)

它们之间有什么区别?

推荐答案

区别是第二种方法不起作用:

>>> {}.update(1, 2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: update expected at most 1 arguments, got 2

dict.update() 希望找到键-值对,关键字参数或其他字典的可迭代项:

dict.update() expects to find a iterable of key-value pairs, keyword arguments, or another dictionary:

update()接受另一个字典对象或键/值对的迭代(作为元组或其他长度为2的迭代).如果指定了关键字参数,则使用以下键/值对更新字典: d.update(red = 1,blue = 2).

update() accepts either another dictionary object or an iterable of key/value pairs (as tuples or other iterables of length two). If keyword arguments are specified, the dictionary is then updated with those key/value pairs: d.update(red=1, blue=2).

map()是一种内置方法,该方法通过将第二个(及后续)参数的元素应用于第一个参数(该参数必须是可调用的)来生成序列.除非您的 key 对象是可调用的,并且 value 对象是一个序列,否则您的第一个方法也会失败.

map() is a built-in method that produces a sequence by applying the elements of the second (and subsequent) arguments to the first argument, which must be a callable. Unless your key object is a callable and the value object is a sequence, your first method will fail too.

有效的 map()应用程序的演示:

Demo of a working map() application:

>>> def key(v):
...     return (v, v)
...
>>> value = range(3)
>>> map(key, value)
[(0, 0), (1, 1), (2, 2)]
>>> product = {}
>>> product.update(map(key, value))
>>> product
{0: 0, 1: 1, 2: 2}

此处 map()仅产生键-值对,满足 dict.update()的期望.

Here map() just produces key-value pairs, which satisfies the dict.update() expectations.

这篇关于Python字典中的更新方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 03:38