针对dict中 嵌套dict 出现复制异常

lists={}
test=['s1','s2','s3']
data = {'value': '',}
for i in range(2):
lists[i]=data
# dic = {0: {'value': '',}, 1:{'value': '',}}
for j in range(2):
# print(j)
lists[j]['value']=test[j]
print(lists)

  结果

{0: {'value': 's2'}, 1: {'value': 's2'}}

  很奇怪0,1的value都是s2

解决方法:

lists={}
test=['s1','s2','s3']
data = {'value': '',}
for i in range(2):
lists[i]={'value': '',}
# dic = {0: {'value': '',}, 1:{'value': '',}}
for j in range(2):
# print(j)
lists[j]['value']=test[j]
print(lists)

  或

lists = {0: {'value': '',}, 1:{'value': '',}}
for j in range(2):
# print(j)
lists[j]['value']=test[j]
print(lists)

  二者的结果均一致

{0: {'value': 's1'}, 1: {'value': 's2'}}

  猜测原因:可能是因为data是一个地址 ,lists[i]=某个地址,当给list[i]赋值时相当于给某个地址赋值,故其中一个值变了,其余值也跟着变。 lists[i]={'Url': '',} 相当于给了个新地址 。可能原因不对欢迎指出。

python 字典嵌套字典赋值异常的更多相关文章

  1. !!Python字典增删操作技巧简述+Python字典嵌套字典与排序

    http://developer.51cto.com/art/201003/186006.htm Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些 ...

  2. python关于字典嵌套字典,列表嵌套字典根据值进行排序

    python 对于字典嵌套字典, 列表嵌套字典排序 例:列表嵌套自字典:d = [{"name": '张三', 's': 68}, {'name': '李四', 's': 97}] ...

  3. python字典嵌套字典的情况下获取某个key的value

    最近在用python写接口的测试程序,期间用到解析字典获取某个key的value,由于多个接口返回的字典格式不是固定的并存在多层嵌套的情况.在字典的方法中也没有找到可直接达到目的的方法(也可能是我对字 ...

  4. python 生成嵌套字典

    import collections import json tree=lambda:collections.defaultdict(tree) some_dict=tree() some_dict[ ...

  5. Python全栈day13(作业讲解字典嵌套实现用户输入地址信息添加及查看)

    要求: 列出字典对应节点名称,根据用户输入可以添加节点,查看节点等功能,这里以地址省-市-县等作为列子,此题熟悉字典嵌套功能 vim day13-16.py db = {} path = [] whi ...

  6. python——Container之字典(dict)详解

    字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. ...

  7. day 05 字典,字典嵌套

    字典: 1.列表如果存储大量数据,查询速度相对慢一些 2.列表存储的数据,一般没有什么关联性 针对以上原因,python提供了一个基础数据类型,dict 字典 数据类型的分类 : 容器型数据类型:li ...

  8. python数据类型之字典

    字典定义 字典是一种 key-value 的数据类型,这点很重要,是区别使用列表和字典的依据. 语法格式: info = { 'stu1101': "Aaron", 'stu110 ...

  9. python 编程基础-字典类型和方法

    定义:字典是一种key-vlaue的数据类型. 字典特性KEY值必须是唯一,且可hash的(不可变数据类型),无索引,无序的(因为有KEY),查找速度快 语法:info = {'stu1101':&q ...

随机推荐

  1. Flutter学习(一)之MaterialApp和Scaffold组件使用详解

    一,前言: MaterialApp和Scaffold是Flutter提供的两个Widget,其中: MaterialApp是一个方便的Widget,它封装了应用程序实现Material Design所 ...

  2. 兼容在安装linux系统过程中不支持非原装的光模块的命令

    1 .通过ifconfig -a发现有网卡找不到,并且配置没有问题,那么很可能是光模块有问题2 .dmesg | grep 82599EB ,通过这个命令过滤发现有如下信息: [ 7142.12197 ...

  3. Spring Boot web简介及原理 day04

    一.SpringBoot创建web开发(三部曲) 1.快速构建SpringBoot项目,并以jar包的形式构建 2.选择对应的功能模块 (选定场景,配置少量的配置就可运行,不配置有默认值) 3.编写自 ...

  4. DB_ObjectName_Define

    TABLE:Module_Object_Action eg:Finance_ProfitAdjust_Apply

  5. Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'系列一:

    从库报这个错误:Got fatal error 1236 from master when reading data from binary log: 'Could not find first lo ...

  6. zabbix实现自定义监控

    实现自定义监控项实例 .创建主机组 .创建主机 .创建监控项 .到需要监控的主机的agent中添加自定义的监控项目 cd /etc/zabbix/zabbix_agentd.d vi userpara ...

  7. 004-数据结构之ADT-栈与队列【数组方式实现】

    一.ADT 在介绍抽象数据类型的时候,先看看什么是数据类型,在Java中可能首先会想到像 int,double这样的词,这是Java中的基本数据类型,一个数据类型会涉及到两件事: ①.拥有特定特征的数 ...

  8. python 批量ping脚本不能用os.system

    os.system(cmd)通过执行命令会得到返回值. ping通的情况下返回值为0. ping不通的情况: 1.请求超时,返回值1 2.无法访问目标主机,返回值为 0,和ping通返回值相同   所 ...

  9. Linux rh7环境下安装Oracle数据库

    1.修改Linux系统的参数 1)检查系统的版本 # more /etc/redhat-release 2)关闭SELinux,需要restart # sed -i 's/SELINUX=enforc ...

  10. C#设计模式(13)——代理模式(Proxy Pattern)(转)

    一.引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代 ...