zoukankan      html  css  js  c++  java
  • python 字典嵌套字典赋值异常

    针对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': '',} 相当于给了个新地址 。可能原因不对欢迎指出。

  • 相关阅读:
    第八周学习进度总结
    全国(球)疫情信息可视化
    第六周学习进度总结
    手把手教你爬取B站弹幕!
    Xpath基础学习
    团队成员及选题介绍
    第五周学习进度
    课堂练习之疫情APP
    SpringMVC02
    06 | 链表(上):如何实现LRU缓存淘汰算法?
  • 原文地址:https://www.cnblogs.com/qieyu/p/9884285.html
Copyright © 2011-2022 走看看