python字典的记录少了!
当我在模拟生成信息管理数据时,经常莫明其妙的少些,记录越多,现象越糟糕!
原来,是key唯一性造成的:后面对已在字典的key赋值,key原来的值就被覆盖。所以,总比我想要的少。
*☆程序调试环境☆*
python 3.6.6 安卓版(手机)
知识点:
key在字典中的唯一性能。
技巧:
对字典添加元素,一定要先查询,key是否已在字典中,如dict.get(key)!=None,说明key已在,对即将append的key,更名。
最初,以为代码运行异常。😭 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210911000349286.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU3MTU4NDk2,size_16,color_FFFFFF,t_70)
后来,才想明白,是后面的重名赋值,覆盖了前面的key。用if dict.get(key)!=None来对key进行检查,解决了我的问题。😎
今天早上,我才想到。
其实,可以用循环,优雅地解决key重名。😁😁(2021-09-11 09:02 )
代码
def create_student():
#生成学生信息字典记录
key_1, key_2 = str(number), name[1:]
#如果姓名已在字典,修改姓名
k = 2
while True:
if st.get(key_2)!=None:
key_2 = name[1:]+str(k)
k += 1
else:
break
info = {}
info_key = "性别", "民族", "电话", "籍贯", "专业/学院"
info_value = name[0], nation[0]+"族", tel(), adress(native), profession
#生成学生info字典记录
for x,y in zip(info_key, info_value):
info[x] = y
st[key_1] = {key_2: info}
st[key_2] = {key_1: info}
温馨推荐
作者: 老齐