Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我能在一本字典里有3个元素吗_Python - Fatal编程技术网

Python 我能在一本字典里有3个元素吗

Python 我能在一本字典里有3个元素吗,python,Python,如果我有两本字典 opt1 = {"A" : 1, "B" : 1, "C" : 1, } opt2 = {"A" : "b", "B" : "n", "C" : "m", } 除了制作一本列表词典,还有什么我可以把它做成一本词典的吗?所以它会像。。(我知道这不管用……) 将defaultdict与列表一起使用 from collections import defaultdict d = defaultdict(list) fo

如果我有两本字典

opt1 = {"A" : 1,
        "B" : 1,
        "C" : 1,
}
opt2 = {"A" : "b",
        "B" : "n",
        "C" : "m",
}
除了制作一本列表词典,还有什么我可以把它做成一本词典的吗?所以它会像。。(我知道这不管用……)


将defaultdict与列表一起使用

from collections import defaultdict
d = defaultdict(list)
for opt in (opt1, opt2,):
    d.update(opt)
您可以添加任意数量的项目


如果您想要快速测试值的存在性,不需要重复值,并且不需要保持插入顺序,也可以使用defaultdict(set)。

如果您想要这样的内容:(元组作为值),如:

这里有一个非常基本的方法

opt2_2 = {key:(opt1[key], opt2[key]) for key in opt1.keys()}

这假设键集是相同的(或者至少1的所有键也是2的键,并且您不关心不在1中的2的键。更复杂的理解将抓住这一点,但我在这里保持简单。

您可以这样做:

opt = {}
for i in opt1:
    opt[i] = [opt1[i], opt2[i]]
这样,
opt
将具有值
{'A':[1,'b'],'C':[1,'m'],'b':[1,'n']}

制作这样的词典是不可能的:

opt = {"A" : 1 : "b",
       "B" : 2 : "n",
       "C" : 3 : "m",
    }

字典(
列表
元组
,或
集合
)是您的选项字典将键映射到值。
“A”
是键,
1
是值。如果希望值包含多个元素,请使用容器类型:
{'A':[1,2]}
{'A':(1,2)}
,等等。根据我想要的是哪一个,我将如何引用1或2?
opt['A'][0]
对于1,
opt['A'][1]
对于2
{k:[opt1.get(k),opt2.get(k)]对于opt1中的k
@downvoter:你想告诉我为什么这是一个特别糟糕的答案吗?
opt2_2 = {key:(opt1[key], opt2[key]) for key in opt1.keys()}
opt = {}
for i in opt1:
    opt[i] = [opt1[i], opt2[i]]
opt = {"A" : 1 : "b",
       "B" : 2 : "n",
       "C" : 3 : "m",
    }