if __name__ == '__main__':
input_str = input()
l = [int(x) for x in input_str] # 将输入的字符串转换为整数列表
if l: # 确保列表不为空
max_value = max(l) # 找出列表中的最大值
new_l = [0] * (max_value + 1) # 根据最大值创建计数列表
for i in l:
new_l[i] += 1 # 增加在索引 'i' 处的计数
for i in range(len(new_l)):
if new_l[i] != 0:
print(f"{i}:{new_l[i]}", end='\n' if i != len(new_l)-1 else '')
-
读取输入字符串:
input_str = input()
:从用户那里获取一个字符串输入。
-
转换字符串为整数列表:
l = [int(x) for x in input_str]
:将输入字符串中的每个字符转换为整数,并存储在列表l
中。
-
确保列表不为空:
if l:
:检查列表l
是否为空。如果列表为空,则不执行任何进一步的操作。
-
找出列表中的最大值:
max_value = max(l)
:在列表l
中找出最大的数字。
-
创建计数列表:
new_l = [0] * (max_value + 1)
:创建一个新列表new_l
,长度为max_value + 1
。这是因为列表的索引从 0 开始,所以需要加 1 来确保有足够的空间来存储直到最大值的计数。每个元素的初始值都设为 0。
-
计算各数字出现的次数:
for i in l:
循环遍历列表l
中的每个数字。new_l[i] += 1
:对于列表l
中的每个数字i
,在new_l
的第i
个位置增加计数。
-
打印结果:
for i in range(len(new_l)):
循环遍历new_l
。if new_l[i] != 0:
:如果new_l
在索引i
处的值不为 0,则表示数字i
在原始列表中至少出现一次。print(f"{i}:{new_l[i]}", end='\n' if i != len(new_l)-1 else '')
:打印数字及其出现次数。如果不是最后一个数字,则在每个输出后添加换行符。