Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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 复制嵌套字典_Python_Algorithm - Fatal编程技术网

Python 复制嵌套字典

Python 复制嵌套字典,python,algorithm,Python,Algorithm,我有一个带整数键的dict,每个键的值都是一个带整数键的映射,一组整数作为值 例: 我正在尝试编写执行以下操作的函数: 给定x的每个值中存在的键(k)(比如2),它应该返回一个具有类似结构和以下属性的新dict: 键(T):在k 值:具有相同内部键的dict,但给定内部键(k')的值是与旧dict中的k'相关联的所有集合的并集,这些集合在x[k] 在上面的示例中,如果参数为k=2,则应返回: y = { 7 : {0:set([1,2,5]), 1:set([3,4]), 2:se

我有一个带整数键的dict,每个键的值都是一个带整数键的映射,一组整数作为值

例:

我正在尝试编写执行以下操作的函数:

给定
x
的每个值中存在的键(k)(比如2),它应该返回一个具有类似结构和以下属性的新dict:

  • 键(T):在
    k
  • 值:具有相同内部键的dict,但给定内部键(
    k'
    )的值是与旧dict中的
    k'
    相关联的所有集合的并集,这些集合在x[k]
在上面的示例中,如果参数为
k=2
,则应返回:

y = {
    7 : {0:set([1,2,5]), 1:set([3,4]),  2:set([7])},
    8 : {0:set([1,2,5]), 1:set([3]),    2:set([8])},
    }

我目前正在通过迭代旧dict中
k
下的所有可能值并构造新值来实现这一点。有没有一种有效的方法可以做到这一点?

您还必须创建对象的副本,因为您可以使用
copy
模块的
deepcopy
。检查细节。这将复制所有对象和基本数据。

您还必须创建对象的副本,以便使用
复制
模块的
深度复制
。检查细节。这将复制所有对象和基本数据。

@^不,不是……我没有提供实际代码的原因是当前代码涉及到我当前参与的项目的许多不必要的额外细节……尝试清理您的示例(不正确)--它们现在是否正确?我是否可以建议您使用当前代码并将其放置在codereview.stackexchange.com上进行审阅?目前,试图从描述中确定您的功能是很困难的。@^不,不是……我没有提供实际代码的原因是当前代码涉及到我当前参与的项目的许多不必要的额外细节……试图清理您的示例(不正确)--它们现在是否正确?我是否可以建议您使用当前代码并将其放置在codereview.stackexchange.com上进行审阅?目前,试图从描述中确定你的功能是很困难的。如果你制作一个全新的dict对象,你不会复制旧的——你只会制作一个新的。如果你制作一个全新的dict对象,你不会复制旧的——你只会制作一个新的。
y = {
    7 : {0:set([1,2,5]), 1:set([3,4]),  2:set([7])},
    8 : {0:set([1,2,5]), 1:set([3]),    2:set([8])},
    }