相关疑难解决方法(0)

如何在单个表达式中合并两个词典?

我有两个Python字典,我想编写一个返回这两个字典的表达式,合并.update()如果它返回结果而不是就地修改dict,那么该方法将是我需要的.

>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = x.update(y)
>>> print(z)
None
>>> x
{'a': 1, 'b': 10, 'c': 11}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得最终合并的词典z,不是x吗?

(要清楚的是,最后一次胜利的冲突处理dict.update()也是我正在寻找的.)

python merge dictionary

4349
推荐指数
41
解决办法
168万
查看次数

Python:如果存在值,则通过更新而不是覆盖来进行字典合并

如果我有2个dicts如下:

d1 = {('unit1','test1'):2,('unit1','test2'):4}
d2 = {('unit1','test1'):2,('unit1','test2'):''}
Run Code Online (Sandbox Code Playgroud)

为了"合并"它们:

z = dict(d1.items() + d2.items())
z = {('unit1','test1'):2,('unit1','test2'):''}
Run Code Online (Sandbox Code Playgroud)

工作良好.另外要做什么,如果我想比较两个词典的每个值,如果d1中的值为空/无/',则只将d2更新为d1?

[编辑] 问题:当将d2更新为d1时,当存在相同的键时,我想仅保持数值(来自d1或d2)而不是空值.如果两个值都为空,那么保持空值没有问题.如果两者都有值,则应保留d1值.:)(lota if-else ..我会在此期间尝试自己)

d1 = {('unit1','test1'):2,('unit1','test2'):8,('unit1','test3'):''}
d2 = {('unit1','test1'):2,('unit1','test2'):'',('unit1','test3'):''}

#compare & update codes

z = {('unit1','test1'):2,('unit1','test2'):8, ('unit1','test2'):''} # 8 not overwritten by empty.
Run Code Online (Sandbox Code Playgroud)

请帮忙建议.

谢谢.

python merge dictionary compare

42
推荐指数
6
解决办法
5万
查看次数

从PHP数组中删除NULL,FALSE和'' - 但不是0

我想删除NULL,FALSE''值.

我用过,array_filter但它也删除了0.

是否有anty功能来做我想要的?

array(NULL,FALSE,'',0,1) -> array(0,1)
Run Code Online (Sandbox Code Playgroud)

php arrays array-filter

31
推荐指数
3
解决办法
2万
查看次数

标签 统计

dictionary ×2

merge ×2

python ×2

array-filter ×1

arrays ×1

compare ×1

php ×1