代码:
list = [1, 2, 3, 4, 5]
for item in list:
item = 999
print(list)
list2 = [{'1': 1}, {'1': 1}]
for item in list2:
item['1'] = 999
print(list2)
输出:
[1, 2, 3, 4, 5]
[{'1': 999}, {'1': 999}]
为什么第一种无法修改,而第二种修改成功了?
我怎么判断能不能修改成功?
代码:
list = [1, 2, 3, 4, 5]
for item in list:
item = 999
print(list)
list2 = [{'1': 1}, {'1': 1}]
for item in list2:
item['1'] = 999
print(list2)
输出:
[1, 2, 3, 4, 5]
[{'1': 999}, {'1': 999}]
为什么第一种无法修改,而第二种修改成功了?
我怎么判断能不能修改成功?
number和dict类型不一样,在list中的引用是不一样的,所以在第一种中item等于是复制出来的,是一个全新的变量,里面的值也是全新的,所以你修改后实际上修改的是item,而不是list里面的值,而第二种方式list的dict是一种引用,就如同是关联,遍历出来的item虽然是新的变量,但是也是关联到到同一个dict, 所以你修改item的时就等于是修改list里面的
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
python中其实最多的就是引用了
看下第一个代码
我把这个代码改变下就更容易看了
然后第二个代码
这个其实python中可变与不可变类型,主要还是说的python中的引用。