鱼C论坛

 找回密码
 立即注册
查看: 2893|回复: 8

[已解决]python 字典里在对应的键添加值 提示键不存在 求助

[复制链接]
发表于 2017-10-19 22:10:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Snip20171019_14.png
Snip20171019_15.png
最佳答案
2017-10-19 23:18:15

出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反,因为用setdefault( )方法获取键值的时候,如果在字典中找不到对应的键时,会自动添加。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-19 22:47:50 | 显示全部楼层
虽然不知道你为什么这样写,但是我猜测你的目的应该是为了得到当前目录下的文件类型的个数?

把你标记出错的那一步改成
currt_dirlist_dict[extension]+=1 就行了

至于报错的原因是当读取到的currt_dirlist第一个不是文件夹时比如abc.txt的时候进入else,这时候currt_dirlist_dict并没有'文件夹'这个key

评分

参与人数 1鱼币 +1 收起 理由
Cool-Fella + 1 感谢!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-19 22:11:30 | 显示全部楼层

回帖奖励 +1 鱼币

别发图片的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-19 22:17:15 | 显示全部楼层
本帖最后由 Cool-Fella 于 2017-10-19 22:18 编辑


import os

currt_dirlist=os.listdir()
currt_dirlist_dict=dict()

for each in currt_dirlist:
    if os.path.isdir(each):
        currt_dirlist_dict.setdefault('文件夹',0)
        currt_dirlist_dict['文件夹']+=1
    else:
        extension=os.path.splitext(each)[1]
        currt_dirlist_dict.setdefault(extension,0)
        currt_dirlist_dict['文件夹']+=1                        #问题出现在这一步

for each_key in currt_dirlist_dict:
    print('该文件下的类型为【%s】的文件%d个'%(each_key,currt_dirlist_dict[each_key]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-19 23:18:15 | 显示全部楼层    本楼为最佳答案   

出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反,因为用setdefault( )方法获取键值的时候,如果在字典中找不到对应的键时,会自动添加。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-19 23:31:53 | 显示全部楼层
铁棍阿童木 发表于 2017-10-19 23:18
出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反 ...

对 你说的没错
我是故意那样写的 因为我在测试程序的时候 我想试试那样的写法能不能添加值
按道理来说 不应该报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-19 23:33:43 | 显示全部楼层
铁棍阿童木 发表于 2017-10-19 23:18
出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反 ...

我明白了
有可能 第一个不是 文件夹 所以那个时候 文件夹 还没创建 所以在下面添加对应的值得时候 会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-15 07:25:46 | 显示全部楼层
看来还有很多东西要学习啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-18 21:15:00 | 显示全部楼层
看来还有很多东西要学习啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 21:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表