关于Python中的s.split问题

img


为什么split括号中的引号之间没有空格,引号是挨着的,为什么就会出现错误,难道不能按照一个字母一个字母的分开吗



  在 Python ,两个引号靠在一起,也是“字符串”,她叫空字符,print('') 会什么都没有,相当于 None ;' ' 是一个空格,一个半角空格,也就是英文输入状态下的一个空格。如果 print(' ') 也什么也看不到,但却是在屏幕上真实打印了一个空格,而 print('') 是真的什么都没有。

   str.split() 默认英文空格分隔,split() 与 split(' ') (或者 split(" ") )行等效。


  • 在 Python ,字符串对象,可以直接遍历的,所以,您的统计函数也可以这样写——
#!/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))
  • 代码运行效果截屏图片

    img


  • 对于排序,您也可以这样——

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))
  • 代码运行效果截屏图片

    img

  • 格式化输出您可以——


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))))

  • 代码运行效果截屏图片

    img


我的学习笔记: