星河入梦- 发表于 2021-1-25 16:29:29

关于字典的增加和改变问题

totl = {'北京市': [[]]}#创建一个字典,key是省市,value是一个列表[,....]
time = 0   
key = []   
while time < 3:
    name = input('名字')
    local = input('地址')
    for i in totl:
      if local == i:    #判断是否符合key
            totl = [[].extend()]#添加进相应的value里
            key.append(i)   #将key生成一个列表
    a = key.count(local)
    if a == 0:    #判断是否在字典里
      totl] = []   #不在则添加进字典
    time = time + 1
print(totl)



在输入一个北京市的地址后,北京市的value变成了none,不知道为什么,此外,如果输入相同的省市,那一个value也会变成none, ,但如果只输入一个特有的省市,又不会出现none。

hrp 发表于 2021-1-25 16:29:30

因为[].extend()返回None

wp231957 发表于 2021-1-25 18:14:48

最终想实现什么样的效果

星河入梦- 发表于 2021-1-25 20:35:12

wp231957 发表于 2021-1-25 18:14
最终想实现什么样的效果

快递分拣程序,按省份分类,同一个省的在一个列表里。元素是一个由姓名和地址构成的小列表。总体是一个字典。

wp231957 发表于 2021-1-25 20:54:02

星河入梦- 发表于 2021-1-25 20:35
快递分拣程序,按省份分类,同一个省的在一个列表里。元素是一个由姓名和地址构成的小列表。总体是一个字 ...

你的代码写的狠诡异,同时分析别人的代码也是狠麻烦的事,所以说出你的需求,拿出你的样本数据,重写代码才是王道

Cool_Breeze 发表于 2021-1-25 21:42:08

totl = totl.extend()#添加进相应的value里

星河入梦- 发表于 2021-1-26 09:16:01

wp231957 发表于 2021-1-25 20:54
你的代码写的狠诡异,同时分析别人的代码也是狠麻烦的事,所以说出你的需求,拿出你的样本数据,重写代码 ...

{'北京市' : [['张三' : '北京市朝阳区......']]}
输入: 姓名:李四
          地址:北京市顺义区......
          姓名:王五
          地址:四川省成都市金牛区.....

实现效果:
{'北京市' : [['张三' , '北京市朝阳区......' ],
               [' 李四' , '北京市顺义区.......' ]],
'四川省' : [['王五' , '四川省成都市金牛区....' ]]
}

星河入梦- 发表于 2021-1-26 09:25:48

wp231957 发表于 2021-1-25 20:54
你的代码写的狠诡异,同时分析别人的代码也是狠麻烦的事,所以说出你的需求,拿出你的样本数据,重写代码 ...

谢谢前辈解答,我找到问题所在了。[ ].extend([])不能在等式右边用于赋值
页: [1]
查看完整版本: 关于字典的增加和改变问题