gpt4 book ai didi

python - 实现结果输出的最佳pythonic方式

转载 作者:太空狗 更新时间:2023-10-30 01:32:12 28 4
gpt4 key购买 nike

我需要一些关于最佳和好的解决方案的帮助来回答我的问题。

我有这样的输入字典:

a = {
(1, 1403): {1:0.1, 2:0.1, 3:0.2},
(1, 1412): {1:0.1, 2:0.1, 3:0.2},
(1, 1411): {1:0.1, 2:0.1, 3:0.2},
(1, 1402): {1:0.1, 2:0.1, 3:0.2},
(1, 1411): {1:0.1, 2:0.1, 3:0.2},
(2, 1501): {1:0.1, 2:0.1, 3:0.2},
(2, 1511): {1:0.1, 2:0.1, 3:0.2},
(2, 1700): {1:0.1, 2:0.1, 3:0.2},
(2, 1120): {1:0.1, 2:0.1, 3:0.2},
(2, 2133): {1:0.1, 2:0.1, 3:0.2},
(2, 2130): {1:0.1, 2:0.1, 3:0.2},
(2, 901): {1:0.1, 2:0.1, 3:0.2},
(3, 1111): {1:0.1, 2:0.1, 3:0.2},
}

我想要这样的输出:

{1: { 1403: {1: 0.1, 2: 0.1, 3: 0.2}, 
1402: {1: 0.1, 2: 0.1, 3: 0.2},
1411: {1: 0.1, 2: 0.1, 3: 0.2},
1412: {1: 0.1, 2: 0.1, 3: 0.2}},

2: {1120: {1: 0.1, 2: 0.1, 3: 0.2},
2130: {1: 0.1, 2: 0.1, 3: 0.2},
1700: {1: 0.1, 2: 0.1, 3: 0.2},
901: {1: 0.1, 2: 0.1, 3: 0.2},
1511: {1: 0.1, 2: 0.1, 3: 0.2},
1501: {1: 0.1, 2: 0.1, 3: 0.2},
2133: {1: 0.1, 2: 0.1, 3: 0.2}},
3: {1111: {1: 0.1, 2: 0.1, 3: 0.2}}}

我已经完成了下面的代码

data_dict = defaultdict(dict)
for (a,b), c in a.items():
data_dict[a].update({b:c})

我已经有了上面的答案来实现我想要的输出,这是好的方法吗?是否有更好的解决方案来实现结果(以 pythonic 方式),必须是最优的。

最佳答案

一种方法是使用字典理解,如 PEP 274 中所述,这可能更像 python 。但是,天真的解决方案 result = {a: {b: c} for (a, b), c in a.items()} 无法按预期工作。 (它将为您提供一个包含三个键的字典,每个键包含一个字典)。

字典理解中可能有一些技巧可以允许所需的行为,但代码似乎不会变得非常可读或可理解,因此使其变得非常非Python。 p>

简而言之,您自己的解决方案将非常 pythonic。

关于python - 实现结果输出的最佳pythonic方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475979/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com