python 覆盖list_python list append 被覆盖问题

遇到一个小问题,在for循环中,将字典内容追加到列表中时发现被覆盖,在这里记录一下~

list1=[]

use_dict=dict()

for i in range(3):

use_dict['num']=i

list1.append(use_dict)

print(list1)

在这里输出的是:

[{'num': 2}, {'num': 2}, {'num': 2}]

将代码修改之后:

for j in range(3):

use_dict2=dict()

use_dict2['num']=j

list2.append(use_dict2)

print(list2)

输出的是:

[{'num': 0}, {'num': 1}, {'num': 2}]

造成这种结果的原因是:字典被append给列表的是一个地址,当字典声明在循环外的时候,字典始终是第一次声明的那一个,就算一直在追加值,也只不过是将新的值覆盖掉原来的值而已;当字典声明在循环内时,每次循环都会生成一个新的字典,每次的值也就相应的保存在了新的字典内.

打印其id可以很明确的看出来:

list1=[]

use_dict=dict()

for i in range(3):

print(id(use_dict))

use_dict['num']=i

list1.append(use_dict)

print(list1)

list2=[]

for j in range(3):

use_dict2=dict()

print(id(use_dict2))

use_dict2['num']=j

list2.append(use_dict2)

print(list2)

输出的结果为:

459391538888

459391538888

459391538888

[{'num': 2}, {'num': 2}, {'num': 2}]

459391539016

459391538952

459391539080

[{'num': 0}, {'num': 1}, {'num': 2}]

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python 中,使用 `list.append()` 方法可以将一个元素添加到列表的末尾。 语法: ``` list.append(element) ``` 示例: ``` >>> a = [1, 2, 3] >>> a.append(4) >>> print(a) [1, 2, 3, 4] ``` 注意,`append()` 方法只能在列表末尾添加元素,如果需要在列表中间或开头添加元素,应该使用 `list.insert()` 方法。 ### 回答2: Python中的list append方法用于在列表的末尾添加元素。它接受一个参数,即要添加的元素,可以是任何数据类型。 通过使用append方法可以方便地向列表中添加元素,将其添加到现有元素的尾部。例如,我们可以创建一个空列表并向其中添加一些元素: ```python my_list = [] my_list.append(1) my_list.append(2) my_list.append(3) print(my_list) ``` 输出结果为:[1, 2, 3]。 我们还可以将其他列表添加到现有列表的末尾,实现列表的合并。例如: ```python list1 = [1, 2, 3] list2 = [4, 5, 6] list1.append(list2) print(list1) ``` 输出结果为:[1, 2, 3, [4, 5, 6]]。在上述示例中,list2被视为一个整体元素添加到list1的末尾。 需要注意的是,append方法在原列表上进行修改,无返回值。因此,如果我们执行以下操作: ```python my_list = [1, 2, 3] new_list = my_list.append(4) print(new_list) print(my_list) ``` 输出结果为:None和[1, 2, 3, 4]。由于append方法没有返回值,因此new_list实际上是None。 总而言之,append方法是Python中列表操作的一种常用方法,用于在列表末尾添加元素。它可以通过添加单个元素或其他列表来实现。 ### 回答3: Python中的list append()方法是将一个元素添加到列表的末尾。语法如下: list.append(element) 其中,list是要添加元素的列表,element是要添加的元素。 例如,我们有一个空列表my_list = [],现在我们想要在其中添加元素1和元素2。我们可以使用append()方法来实现: my_list.append(1) my_list.append(2) 现在,my_list的内容为[1, 2]。 append方法每次将元素添加到列表的最后一个位置,因此无论有多少次调用,元素都会添加到列表的末尾。 此外,append()方法还可以用来添加其他类型的元素,如字符串、布尔值、浮点数等。例如: my_list.append("hello") my_list.append(True) my_list.append(3.14) 经过上述操作,my_list将变为[1, 2, "hello", True, 3.14]。无论是单个元素还是多个元素,只要调用append()方法并传递相应的值,就可以将其添加到列表末尾。 需要注意的是,append()方法是原地操作,即修改了原始列表而不创建新的列表。如果要在原始列表的末尾添加另一个列表的所有元素,可以使用extend()方法。 总之,append()方法是Python中用于将元素添加到列表末尾的常用方法,它可以在已存在的列表末尾一次添加一个或多个元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值