【发布时间】:2013-12-24 11:07:19
【问题描述】:
这是我计算元音数量的程序
'''Program to count number of vowels'''
str=input("Enter a string\n")
a=0
e=0
i=0
o=0
u=0
for x in str:
if x=='a':
a=a+1
continue
if x=='e':
e=e+1
continue
if x=='i':
i=i+1
continue
if x=='o':
o=o+1
continue
if x=='u':
u=u+1
continue
count={}
if a>0:
count['a']=a
if e>0:
count['e']=e
if i>0:
count['i']=i
if o>0:
count['o']=o
if u>0:
count['u']=u
print(count)
如何改进初始循环以进行比较以及填充字典的过程。
在多次运行程序时,我得到了以下输出:
>>>
Enter a string
abcdefgh
{'e': 1, 'a': 1}
>>> ================================ RESTART ================================
>>>
Enter a string
abcdefghijklmnopqrstuvwxyz
{'u': 1, 'a': 1, 'o': 1, 'e': 1, 'i': 1}
>>> ================================ RESTART ================================
>>>
Enter a string
abcdeabcdeiopiop
{'a': 2, 'o': 2, 'i': 2, 'e': 2}
据此,我无法弄清楚添加到字典中的键值对究竟是如何与我的预期相悖的:
Case 1:
{'a':1, 'e':1}
Case 2:
{'a':1, 'e':1, 'i':1, 'o':1, 'u':1}
Case 3:
{'a':2, 'e':2, 'i':2, 'o':2}
感谢任何帮助。
【问题讨论】:
-
您的意思是您对字典中的键顺序感到惊讶吗?
-
字典不保持顺序。所以,你的程序只能正常工作。如果您想保持插入键的顺序,您需要使用
Collections.OrderedDict
标签: python python-3.x