在 Python ,两个引号靠在一起,也是“字符串”,她叫空字符,print('') 会什么都没有,相当于 None ;' ' 是一个空格,一个半角空格,也就是英文输入状态下的一个空格。如果 print(' ') 也什么也看不到,但却是在屏幕上真实打印了一个空格,而 print('') 是真的什么都没有。
str.split() 默认英文空格分隔,split() 与 split(' ') (或者 split(" ") )行等效。
#!/sur/bin/nve python
# coding: utf-8
def count_num(s: str) -> dict:
''' 字符串统计并返回统计字典 '''
return {i: s.count(i) for i in s} # 字典解析式统计字符串,不用担心重复统计,字典 key 相同,原有的会被覆盖。
if __name__ == '__main__':
s = 'Python VB VFP C C++ Java Python Java Python C'
print(count_num(s))
if __name__ == '__main__':
s = 'Python VB VFP C C++ Java Python Java Python C'
print(f"\n按字符排序:\n{sorted(count_num(s).items(), key=lambda x: x[0])}")
print('\n按字符出现频次倒序:\n', sorted(count_num(s).items(), key=lambda x: x[1], reverse=True))
代码运行效果截屏图片
格式化输出您可以——
if __name__ == '__main__':
s = 'Python VB VFP C C++ Java Python Java Python C'
print('\n按字符排序:\n')
print('\n'.join(map(lambda x: f'{x[0]}: {x[1]}', sorted(count_num(s).items(), key=lambda x: x[0]))))
print('\n\n按字符出现频次倒序:\n')
print('\n'.join(map(lambda x: f'{x[0]}: {x[1]}', sorted(count_num(s).items(), key=lambda x: x[1], reverse=True))))
我的学习笔记: