没有在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的值
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星