调用函数完成统计,并分别按照键和键值的升序返回的字典输出显示。
首先我们要先定义一个函数,做准备工作。
1将参数传入函数
2将传入的字符串切割
3定义一个字典
def count_num(S1):
c=S1.split(" ")
a={}
然后我们根据题意向定义的a字典中传入数值
我们依靠循环遍历切割后的字符串(切割后为列表),然后如果字典中有这个key,便使键值加1,若没有那么便将这个key加入到a字典中,并将键值定为1.
for i in c:
if a.get(i):
a[i]+=1
else:
b={i:1}
a.update(b)
然后我们根据键的顺序输出
#order of keys
print("Order of keys:")
for i in sorted(a):
print(i,a[i])
根据键值升序输出,我们选择先将vaslues排序,在根据键值输入key
#order of values-+
print("Order of valuses:")
x=list(set(sorted(a.values())))
y=list(a.keys())
for j in range(0,len(x)):
for i in range(0,len(y)):
if x[j]==a[y[i]]:
print(y[i],x[j])
主程序中定义字符串即可
S1="Python VB VFP C C++ Java Python Java Python C"
count_num(S1)
完整代码如下:
def count_num(S1):
c=S1.split(" ")
a={}
for i in c:
if a.get(i):
a[i]+=1
else:
b={i:1}
a.update(b)
#order of keys
print("Order of keys:")
for i in sorted(a):
print(i,a[i])
#order of values-+
print("Order of valuses:")
x=list(set(sorted(a.values())))
y=list(a.keys())
for j in range(0,len(x)):
for i in range(0,len(y)):
if x[j]==a[y[i]]:
print(y[i],x[j])
S1="Python VB VFP C C++ Java Python Java Python C"
count_num(S1)