python字典问题

吹雪风 2016-08-13 12:17:49
for i in range(10):
d={}
if i < 5:
x="test"
d[x]=[1,2]
print(d)
else:
print(x)
print(d)

为什么结果是:
{'test': [1, 2]}
{'test': [1, 2]}
{'test': [1, 2]}
{'test': [1, 2]}
{'test': [1, 2]}
test
{}
test
{}
test
{}
test
{}
test
{}
而不是后面5个也是{'test': [1, 2]}
...全文
248 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
redline2005 2016-08-14
  • 打赏
  • 举报
回复
当 i>.5时,没有给d赋值,d[x]=[1,2]这个语句在i<5分支里面。所以5个d打印出来是空的
  • 打赏
  • 举报
回复
d={} 在for循环内部,每次循环,都会重新清空,当i>=5时,并没有修改d的值,d仍然为{}

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧