鱼C论坛

 找回密码
 立即注册
查看: 1763|回复: 3

[已解决]统计字符串中字符个数的问题

[复制链接]
发表于 2017-12-23 11:51:38 | 显示全部楼层 |阅读模式

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

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

x
我使用已学知识实现了字符的个数的统计,但是我想给这个统计进行一个排序:就是出现最多的一个在第一个行然后以此类推,我的思路是通过sorted(countdict.values(),reverse=True),这个把统计个数进行排序,但是不知道如何通过字典值来读取对应的键,有没有通过字典值读取键的方法?
以下是我的代码:
  1. countdict={}
  2. str1='''%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+amp;[(_@%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{_@#_^{*
  3. @##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**amp;^{$!@#$%)!@(&
  4. +^!{%_amp;@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++
  5. !_)^amp;&%#+)}!@!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$()_#}!@}^@_&%^*!){*^^_$^
  6. ]@}#%[%!^[^_})+@&}{@*!(@$%$^)}[_!}(*}#}#___}!](@_{{(*#%!%%+*)^+#%}$+_]#}%!**#!^_
  7. )@)$%%^{_%!@(&{!}$_$[)*!^&{}*#{!)@})!*{^&[&$#@)*@#@_@^_#*!@_#})+[^&!@*}^){%%{&#@
  8. @{%(&{+(#^{@{)%_$[+}]$]^{^#(*}%)@$@}(#{_&]#%#]{_*({(])$%[!}#@@&_)([*]}$}&${^}@(%
  9. (%[@%!}%*$}(*@)}){+@(%@*amp;]*^*}*]&$[}*]%]+*}^!}*$^^_()#$^]++@__){&&+((#%+(&+){)$
  10. %&&#($[[+##*%${)_!+{_[})%++)$#))]]]$]@]@($+{&%&%+!!!@]_]+])^*@$(@#${}}#}{%}#+{(@
  11. #__+{{]${]!{(%${%%^)(_*_@+)$]$#_@$)]](}{}$(}*%+!}#+)$%$}+#@*&^{##}+@(%[*@_}{(^]^
  12. +_*{@+[$!!@%$+{_&(#^(([&[][[&@#+}_]&&]}^*&)#_^$@$((%)}+{}$#+{+^}&[#[#_+${#[#]{
  13. (@@[%}[}$%+*#$+[%(**!$+@$@&+$_$#!_&&&&{***+)}][}#^!%#&$*)$!%}*&#}}##(^_%^]{+]&&]
  14. }^]#^(}@]&$]*_][])$]{_+})^_}]))()^&)(!*![!&}{][(]})[(*^}amp;$_@^$)#${%[$_]!^]}}}*+
  15. *^_(+}^)(%(}{&)[}!&+}&[{%}^+#$]@)^&*%{@}]&!%*%$*&][}&{amp;*@{@#]$*_[]%%[#]#*%)@
  16. $_^#%$!{#]^$}%^@^+{($!^($%)]+&}+$@[$*)*&)*%!_!!+@&^*{}%#&{}$!(*^*@]@@})[($!)]]})
  17. })(&+##]##%&##$}@{#_])*%(*(@$)}[+(+_)!{{#^{_@)!&)$}@^^^[$#__+$^!*#%%]_!#$]amp;+^}%
  18. @])])%}]#$((^+{{@++^])$^*#[$}*]}}{)@+)[_}*@^%#]]#+()+)(]_[!!!)+)$+&@@])!}+*%]$[]
  19. &&[@+$_&#[$!${}{%[]#+@)*!#)*!{$#*$%}[(&@amp;_@($]]]_[+(#@}&_}+]@$#_+](}^})!@@}@)
  20. }^]^]*}]+&(@@!!](*@#(++*)]!(^$})&_^@+]{#_@*%^[$[%&_%@%_![&&]&_@*#_}[{{])^$[_$_&_
  21. @%%[@#[@_[&+]}[+)!_#_+++%)[@%$(&$[{#@(}$*![#^#{}_)[$^_${_@&}*![#*#_+%[@{*^$){)#
  22. #%}]{+((*^]+{})&#$!#(*%({_!^*[{%@_&#){![&]@$#[#(!{*#^*%)]!%(#]%${*_^{+}(@}{_^(](
  23. _+!_)^&}!#([(+&[@])[_(]@]@&@{#@(%[@+[^@%@+]*_[{]$[_(_@[!]]^%+@#(@$}]@(^**+]%^)^(
  24. @}^[]@@[@[@}^(^!]%*_]&$!!^^#*[#*[*_}+[$#(_#%@](+[^+}%{_*#]+*(]}!$(%@%#^)}]_&]{${
  25. }$[*{+&+&}[#_#}_(}){^#{[_%*!$+[#)%]@&&_{)#[+*&+#!&)%)%++$_}){%%*@!*&%__(_!]#$*(_
  26. $^!@@}_())%(&$%]]{{{@+!&%@(^!+*{%[*[!]){(#$@)(^{]%[&*(&!{&}!%*$)*]]$%(__[}_+&)!(
  27. ^_&*]*+#@{@[_({$*&}][(*!+$+#%&![%^)^#(#}+*+(@)&&!({^^_*($^+)&{)%$@%)&!&^+#[)$
  28. +!$^]*!%^_$}$+!!&%_&){$%{((&^{{(&_&_]{^}@[$^+]}]^{@!^@_%_{^@*)+^*#$#!+*}#)}@(}!]
  29. _*)}$**@}[^_&*^)*+#()]&{{]*+#${@&}#)$[]_+(^_@^][]_)*^*+_!{&$##]((](}}{[!$#_{&{){
  30. *_{^}$#!+]{[^&++*#!]*)]%$!{#^&%(%^*}@^+__])_$@_^#[{{})}$*]#%]{}{][@^!@)_[}{())%)
  31. ^###%!{(@+]$%*^}(![$@*]_{#*!$*@%*(^+#!)amp;]*%amp;*@$[)_$!&+_[$)%_*((%+##*]@+#*[$)^
  32. (}&($(^*{^$])*}$(#}%}#)_@^*}#!)$)&$*__+!!+[&}])*_{+$}!@)*^{{({@}{@}+@#${$^*@^^}(
  33. [)!^){!+@%(^_)[]@(]+&^_@[*(_@^*##*&*$!{^{!&#@(%&(@!]^[]({!+(]+^}&&${{]^!+#^*#&%{
  34. @{)%_]#*{%^&@%$[@((*)_%!#+*^]]!}$]+}^]&$#[}{$*#^$_{{}}@[@+@+&}}^^@[[@@})()(@&)[
  35. #)+[])%]$+^^(}^!([&{)!#}#}}#!}[]]{[++&!)]#]]%^%_&_}!&&$@#&!#}&+]$)^_^*$]!$)}&{#)'''
  36. str2=str1.replace('\n','\\n')       #这里我使用了字符串的替换操作
  37. for key in str2:
  38.     if key not in countdict.keys():
  39.         countdict[key]=1
  40.     else:
  41.         countdict[key]+=1
  42. for keys in countdict.keys():
  43.     print('%s的个数为:%d个'%(keys,countdict[keys]))

复制代码


最佳答案
2017-12-24 07:16:37
  1. countdict_sort = sorted(countdict.items(),key=lambda x: x[1], reverse=True)

  2. for k, v in countdict_sort:
  3.     print('"%s"的个数为:%d个'%(k, v))
复制代码

string1.txt

97.64 KB, 下载次数: 3

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

使用道具 举报

发表于 2017-12-23 11:57:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-23 13:06:11 | 显示全部楼层
字典的相关方法有三个:
1、dict.keys()     返回字典dict的所有键
2、dict.values()   返回字典dict的所有值
3、dict.items()     返回字典dict的键值对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-24 07:16:37 | 显示全部楼层    本楼为最佳答案   
  1. countdict_sort = sorted(countdict.items(),key=lambda x: x[1], reverse=True)

  2. for k, v in countdict_sort:
  3.     print('"%s"的个数为:%d个'%(k, v))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 06:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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