python - 在Python中循环整数列表与字典列表
问题描述
我想知道为什么在python的for循环中改变一个变量会改变字典元素而不是列表?换句话说,我想将以下代码相互比较,为什么输出不同?
list1 = [10, 20]
for item in list1:
item += 1
print(list1)
# Output: [10, 20]
dict = [{"Age":10}, {"Age":20}]
for item in dict:
item["Age"] += 1
print(dict)
# Output: [{'Age': 11}, {'Age': 21}]
解决方案
它不会改变,因为在列表的情况下,您更改的值int
在 python 中是不可变的,因此更改item
不会影响它在列表中的原始值,而在第二种情况下,您修改dict
了可变的对象,因此您的更改应用于原始目的。例如,以下带有列表的代码将起作用:
list = [{}, {}]
for item in list:
item['Age'] = 1
print(list)
输出:
[{'年龄':1},{'年龄':1}]
推荐阅读
- function - '在抛出 'std::bad_alloc' 实例后终止调用' 是什么意思?
- kotlin - Kotlin Coroutine - 保持通道发送事件同步
- python - 如何根据python中df1中的日期时间数据从df2中提取数据
- c# - sdk v4 C# .Net Core 中 Chatbot 的 CORS 策略访问问题
- typescript - 在数组元素上使用 typescript instanceof 保护?
- javascript - 如何覆盖 Trix HTMLSanitizer 以允许带有类的 span 标签
- vue.js - 如何在Vue绑定中将时刻(“from”,“now”)与时区结合起来
- c - 结构不返回第一行
- python - 根据 SQLAlchemy 中的其他列计算列的值?
- javascript - 未考虑“gapi.client.storage”的 TypeScript 定义