免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1831 | 回复: 2
打印 上一主题 下一主题

关于字典 [复制链接]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 10:01:44程序设计版块每日发帖之星
日期:2015-06-28 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-12-31 11:36 |只看该作者 |倒序浏览
统计字符串中各个字符的个数,代码如下
def countWords(strLine):
    count={'alpha':0,'space':0,'digit':0,'others':0}
    length=len(strLine)
    for i in range(length):
        if strLine[i] == '\n':
            break;
        if strLine[i].isdigit():
            count['digit']+=1
        elif strLine[i].isalpha():
            count['alpha']+=1
        elif strLine[i].isspace():
            count['space']+=1
        else:
            count['others']=length-count['digit']-count['alpha']-count['space']
    return {'alpha':count['alpha'],'space':count['space'],'digit':count['digit']

但是为什么执行后的字典顺序如下,和之前定位的时候的顺序不一样了呢?
{'alpha': 17, 'digit': 10, 'others': 5, 'space': 6}

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
2 [报告]
发表于 2014-12-31 12:47 |只看该作者
你使用的count是map(也就是hashtable),他的显示顺序和你的赋值顺序没有什么太直接的关系。
但是系统的输出顺序是相对一致的。
你可以试下:
在初始化count之后,马上print count一下,
然后,在返回count之前,再print count一下。

论坛徽章:
1
亥猪
日期:2014-02-07 15:08:34
3 [报告]
发表于 2014-12-31 14:17 |只看该作者
dict本身就是无序的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP