首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:被改写的字典

python:被改写的字典
EN

Stack Overflow用户
提问于 2017-05-01 10:48:35
回答 1查看 2.6K关注 0票数 1

下面代码中字典数据的值正在被重写,尽管键是不同的,但是重写的原因可能是什么。

代码语言:javascript
复制
#!/usr/local/bin/python2.7
data={}
marks = {}
subjects = ["Tamil","English","Maths","Science","Social"]

for i in range(1,3):
  print 'Enter marks for student%d'%i
  for subject in subjects:
    marks[subject] = input("Enter the " + subject + " marks: ")

  data[i]={'marks':marks}
  print data

守则的输出:

代码语言:javascript
复制
Enter marks for student1
Enter the Tamil marks:  10
Enter the English marks:  20
Enter the Maths marks:  30
Enter the Science marks:  40
Enter the Social marks:  50
{1: {'marks': {'Maths': 30, 'Science': 40, 'Social': 50, 'Tamil': 10, 'English': 20}}}
Enter marks for student2
Enter the Tamil marks:  11
Enter the English marks:  12
Enter the Maths marks:  13
Enter the Science marks:  14
Enter the Social marks:  15
{1: {'marks': {'Maths': 13, 'Science': 14, 'Social': 15, 'Tamil': 11, 'English': 12}}, 2: {'marks': {'Maths': 13, 'Science': 14, 'Social': 15, 'Tamil': 11, 'English': 12}}}
{1: {'marks': {'Maths': 13, 'Science': 14, 'Social': 15, 'Tamil': 11, 'English': 12}}, 2: {'marks': {'Maths': 13, 'Science': 14, 'Social': 15, 'Tamil': 11, 'English': 12}}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 10:51:23

您正在重复使用相同的字典,只需在每次迭代中使用一个新字典:

代码语言:javascript
复制
#!/usr/local/bin/python2.7
data={}
subjects = ["Tamil","English","Maths","Science","Social"]

for i in range(1,3):
  print 'Enter marks for student%d'%i
  marks = {}
  for subject in subjects:
    marks[subject] = input("Enter the " + subject + " marks: ")

  data[i]={'marks':marks}
  print data
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43717899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档