没有在user中进行添加操作怎么在教学视频中有呢?
xiaoming = ['xiaoming', 19, 90]
# if users[0][0] == xiaoming[0]:
# xiaoming[0] = '%s_new' % xiaoming[0]
# users.append(xiaoming)
# elif users[1][0] == xiaoming[0]:
# xiaoming[0] = '%s_new' % xiaoming[0]
# users.append(xiaoming)
# elif users[2][0] == xiaoming[0]:
# xiaoming[0] = '%s_new' % xiaoming[0]
# users.append(xiaoming)
# else:
# users.append(xiaoming)
# print(users)
users = {
'dewei': {'age': 33, 'count': 90},
'xiaomu': {'age': 10, 'count': 99},
'xiaoming': {'age': 18, 'count': 100}
}
if xiaoming[0] in users:
xiaoming[0] = '%s_new' % xiaoming[0]
else:
users[xiaoming[0]] = {'age': xiaoming[1], 'count': xiaoming[2]}
print(users)在users采用字典的方式时,当xiaoming[0] = 'xiaoming'时,明明if语句中没有对users进行添加操作,为何在视频中运行程序后会有xiaoming_new??
如下是上述代码运行的结果:
{'dewei': {'age': 33, 'count': 90}, 'xiaomu': {'age': 10, 'count': 99}, 'xiaoming': {'age': 18, 'count': 100}}
正在回答 回答被采纳积分+1
同学,你好!不能将上一个if语句注释,都需要执行的。在视频19:39秒处,老师将变量xiaoming的第一个元素去掉了s改为了xiaoming即列表xiaoming=["xiaoming",19,20],程序由上到下执行,执行到elif users[2][0]=xiaoming[0]是满足条件的

执行elif users[2][0]=xiaoming[0]下的语句块,将xiaoming[0]原来的xiaoming更改为xiaoming_new,xiaoming变量的列表变更为['xiaoming_new', 19, 90]

继续执行后续代码,当执行 if xiaoming[0] in users:语句时,不满足if 条件。因xiaoming[0]为xiaoming_new ,users字典中没有xiaoming_new这个键,只有xiaoming所以执行else 语句。将xiaoming[0]即 xiaoming_new 作为users字典的键,列表xiaoming中的元素19,90分别作为age,count的值

祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 16416 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星