美文网首页
python繁华背后的竹架子 --- 莫名其妙的问题

python繁华背后的竹架子 --- 莫名其妙的问题

作者: 读书不怕苦 | 来源:发表于2020-09-09 23:15 被阅读0次

       近几年,python凭借其简单好上手、功能强大广受小白们的喜爱。但是随着步入深水区,繁华景象背后的竹架子就会慢慢显露出来。

       请看以下巨坑的代码

           sigle_dict = {}

            sigle_dict["sheet_name"] = sheet_name

            sigle_dict["nrows"] = str(x + 1)

            name = sheet.cell_value(x, 1).strip()

            if (name != "-" and name != None and name != ""):

                sigle_dict["name"] = name.strip()

                sigle_dict["meno"] = ''

                name_list.append(sigle_dict)

            sigle_dict["sheet_name"] = sheet_name

            sigle_dict["nrows"] = str(x + 1)

            name = sheet.cell_value(x, 2).strip()

            if (name != "-" and name != None and name != ""):

                sigle_dict["name"] = name.strip()

                sigle_dict["meno"] = ''

                name_list.append(sigle_dict)

            name = sheet.cell_value(x, 3).strip()

            if (name != "-" and name != None and name != ""):

                sigle_dict["name"] = name.strip()

                sigle_dict["meno"] = ''

                name_list.append(sigle_dict)

看着好像都没问题,三次读的数据都插入name_list里了,其中条数也对得上。由于数据较多没法认真看。其实后来才发现,name = sheet.cell_value(x, 1).strip()这个压根没有插入name_list里,反而将name = sheet.cell_value(x, 3).strip()   这个重复插入了一遍。后来改成

           sigle_dict = {}

            sigle_dict["sheet_name"] = sheet_name

            sigle_dict["nrows"] = str(x + 1)

            name = sheet.cell_value(x, 1).strip()

            if (name != "-" and name != None and name != ""):

                sigle_dict["name"] = name.strip()

                sigle_dict["meno"] = ''

                name_list.append(sigle_dict)

            sigle_dict_1 = {}

            sigle_dict_1["sheet_name"] = sheet_name

            sigle_dict_1["nrows"] = str(x + 1)

            name_1 = name.strip()

            name = sheet.cell_value(x, 2).strip()

            if (name != "-" and name != None and name != ""):

                sigle_dict_1["name"] = name.strip()

                sigle_dict_1["meno"] = ''

                name_list.append(sigle_dict_1)

                #self.name_list_deal(sigle_dict)

            sigle_dict_2 = {}

            sigle_dict_2["sheet_name"] = sheet_name

            sigle_dict_2["nrows"] = str(x + 1)

            name_2 = name.strip()

            name = sheet.cell_value(x, 3).strip()

            if (name != "-" and name != None and name != ""):

                sigle_dict_2["name"] = name.strip()

                sigle_dict_2["meno"] = ''

                name_list.append(sigle_dict_2)

这样就正确了。怀疑是python插入list的时候,数据往下执行被改写了。导致原始的还没被插入。突然想起了之前C++高级课程里讲的,代码从来就不是从上往下执行的。他会经过编译器优化,那么如果上下文没有关联的代码,不能保证其顺序执行。但是这里上下文明显有关联。估计是python的一个bug吧。

相关文章

  • python繁华背后的竹架子 --- 莫名其妙的问题

    近几年,python凭借其简单好上手、功能强大广受小白们的喜爱。但是随着步入深水区,繁华景象背后的竹架子就会...

  • 繁华的背后

    生活在繁华中的人,内心总是被各种各样的东西填满; 就如,一块装满文件的硬盘,没有自己的空间; 生活在繁华中的人,总...

  • 繁华的背后

    记得以前当听到别人出国工作,或者出国归来是海归时,我都是一脸艳羨的表情,表情里面有两种意思:①是这人好牛逼啊,②是...

  • 繁华的背后

    繁华落幕之后,万事万物在做什么?世界各地在做规划什么?人类生灵在做谋求什么?你们在做追求什么?我又在忙于生存在做什...

  • 架子问题

    王总说我架子倒有,暗指本领不大。我这些年越来越觉得他说得对。 初三吃饭是一个例子。高中同学黄捷请客,他陪我邻座,给...

  • 繁华背后的绝缘

    仰望视角 ——所谓繁华背后的真实孤寂 那片蓝天 是落寞人之向往

  • 荒芜背后的繁华

    第二次来洛杉矶,高速公路破烂不堪,四处修补,颠簸起伏,妞说,这些高速公路是上世纪五十年代修建,到了老化的...

  • 重庆,繁华的背后

    这次小长假,带着家人来重庆。 这是我跟媳妇第二次来重庆,主要也是为了逛吃。 可是,这次来重庆给我的印象还是一般。 ...

  • 繁华背后的孤独

    嘿远方的你想家了吗? 小时候,妈妈一隔几天没打电话给我,我就觉得我是她捡回来的。 长大后,我一隔几天没打电话给妈妈...

  • 《繁华背后的深思》

    看过很多关于二战的摄影作品,今天听了李颀拯的演讲及作品,还是很有感触。中国经济在飞速发展,人民生活水平逐渐提高...

网友评论

      本文标题:python繁华背后的竹架子 --- 莫名其妙的问题

      本文链接:https://www.haomeiwen.com/subject/tjtuektx.html