Dzwebs.Net

撰写电脑技术杂文十余年

python列表[]append添加新项,全部都是相同的值

Admin | 2021-6-7 9:17:35 | 被阅次数 | 2093

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  一、情况描述

  我在python代码中,定义了如下的两个公有变量

  USER_ANSWER_AllArea_Result={} 

  All_User_All_Paper_Result=[] 

  当我使用如下代码添加列表新值:

  All_User_All_Paper_Result.append(USER_ANSWER_AllArea_Result)

  输出All_User_All_Paper_Results时发现,里面的所有内容都一样。如下图。


  二、存在原因

  因为USER_ANSWER_AllArea_Result={} 和All_User_All_Paper_Result=[] 都是公有变量,在内存中已分配好固定地址,因此,当All_User_All_Paper_Result.append(USER_ANSWER_AllArea_Result)时,所有内容就会突然变成完全一样。

  三、解决办法

  把这个代码:All_User_All_Paper_Result.append(USER_ANSWER_AllArea_Result)

  改成如下的代码即可解决问题。

  tempstr=str(USER_ANSWER_AllArea_Result)
  All_User_All_Paper_Result.append(tempstr)


  上述代码的改良,实际上就是使用了临时变量。因为临时变量在系统中的使用一次定义一次,没有固定的内存地址,所以,当添加为新项后,所有的内容各自是各自的,不会和之前的变成相同的值。


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231