Python基础练习 1021 个位数统计 (15 分)
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
注:知识点 字典排序 基础
问题描述
给定一个 k 位整数 N,请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入输出
- 输入格式
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
- 输出格式
对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
- 样例输入
100311
- 样例输出
0:2
1:3
3:1
Python版本 代码如下
方法1(推荐):
使用了字典的排序方法:sorted(dit.items(), key=lambda x:(x[0]))
x = input()
dit={}
for e in x:
if e not in dit:
dit[e]=1
else:
dit[e]+=1
dit = sorted(dit.items(), key=lambda x:(x[0]))
for i in dit:
print("%s:%d"%(i[0], i[1]))
方法2:
根据字典,自己编写排序方法,形式较为简单。
n = input()
dit={}
for e in n:
if e not in dit:
dit[e] = 1
else:
dit[e]+=1
for i in sorted(dit): #重点,手动编写字典的排序方法
print(i, end=":")
print(dit[i])
涉及知识点
- 按键(key)排序
def dictionairy():
# 声明字典
key_value ={}
# 初始化
key_value[2] = 56
key_value[1] = 2
key_value[5] = 12
key_value[4] = 24
key_value[6] = 18
key_value[3] = 323
print ("按键(key)排序:")
# sorted(key_value) 返回重新排序的列表
# 字典按键排序
for i in sorted (key_value) :
print ((i, key_value[i]), end =" ")
def main():
# 调用函数
dictionairy()
# 主函数
if __name__=="__main__":
main()
- 按值(value)排序
def dictionairy():
# 声明字典
key_value ={}
# 初始化
key_value[2] = 56
key_value[1] = 2
key_value[5] = 12
key_value[4] = 24
key_value[6] = 18
key_value[3] = 323
print ("按值(value)排序:")
print(sorted(key_value.items(), key = lambda kv:(kv[1], kv[0])))
def main():
dictionairy()
if __name__=="__main__":
main()
参考菜鸟:www.runoob.com/python3/pyt… 补充学习