python字典的记录,怎么少了?

在模拟生成信息管理数据时,遇到Python字典记录丢失的问题,原因是key的唯一性导致重名赋值。通过在添加元素前检查key是否已存在,避免了覆盖现象。文中提供了一种循环检查和优雅解决key重名的方法,确保每个学生信息的独特性。
摘要由CSDN通过智能技术生成

上一篇 <<  本文 >>  下一篇

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}

上一篇 <<  本文 >>  下一篇

温馨推荐

作者: 老齐
在这里插入图片描述

学习文章:学习编程的正确方法
来源:老齐教室


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值