如何将元组形式的键值对添加到Python字典?求简便实现方式
如何将键值对元组添加到字典中?
哈哈,完全懂这种“是不是我漏了什么显而易见的方法”的迷糊感!其实你有好几种更简洁直观的写法,不需要用update加元组包装:
直接解包赋值(最直观)
先把foo()返回的键值对解包,然后直接赋值给字典:key, value = foo() d[key] = value这种写法清晰易懂,一眼就能看出来是给字典添加一个键值对,完全符合你想要的“简洁”需求。
用字典合并运算符(Python 3.9+)
如果你喜欢一行代码,可以把元组转换成单元素的字典,然后用|=运算符合并到原字典:d |= {foo()}这里
{foo()}会把二元组(key, value)转换成一个只有一个键值对的字典,再通过|=合并进去,比你原来的d.update((foo(),))要直观不少。简化版update写法
如果你还是想用update,其实可以把结果包装成列表,比元组的写法更不容易搞错:d.update([foo()])本质和你原来的写法一样,但
[]看起来更自然,毕竟我们平时更常用列表来装可迭代元素。
至于为什么没有d.add(foo())这种写法?因为字典的核心是键值对映射,而add通常是给集合(比如set)添加单个元素的方法,字典需要明确知道“哪个键对应哪个值”,所以没有直接的add方法——毕竟如果只传一个元组,Python其实也能识别,但设计上字典更强调键值的明确关联,所以直接赋值或者用上述方法会更符合字典的使用逻辑。
内容的提问来源于stack exchange,提问作者frans
相关产品推荐
相关产品推荐

