• [Python Study Notes]字符串处理技巧(持续更新)


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    >>文件: 字符串处理.py
    >>作者: liu yang
    >>邮箱: liuyang0001@outlook.com
    >>博客: www.cnblogs.com/liu66blog
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import sys, os
    
    # 1.字符串的连接和合并
    # 相加 //两个字符串可以很方便的通过'+'连接起来
    str1='123'
    str2='456'
    str3=str1+str2
    print(str3)
    # -----------输出----------------------
    # 123456
    # ------------------------------------
    
    # 合并//用join方法
    url=['www','cnblog','com/liu66blog']
    print('.'.join(url))
    # -----------输出----------------------
    # www.cnblog.com/liu66blog
    # ------------------------------------
    
    
    # 2.字符串的切片和相乘
    # 相乘//比如写代码的时候要分隔符,用python很容易实现
    Separator='*'*30
    print(Separator)
    # -----------输出----------------------
    # ******************************
    # ------------------------------------
    
    # 切片操作
    url='www.cnblogs.com/liu66blog'
    # 取下标0-15个字符
    print(url[0:16])
    # 取下标16-最后一个
    print(url[16:])
    # 取倒数第四个到最后
    print(url[-4:])
    # 复制字符串
    print(url[::])
    # -----------输出----------------------
    # www.cnblogs.com/
    # liu66blog
    # blog
    # www.cnblogs.com/liu66blog
    # ------------------------------------
    
    
    # 3.字符串的分割
    # 普通的分割,用split
    # split只能做非常简单的分割,而且不支持多个分隔
    url='www.cnblogs.com/liu66blog'
    url_list=url.split('.')
    print(url_list)
    # -----------输出----------------------
    # ['www', 'cnblogs', 'com/liu66blog']
    # ------------------------------------
    
    # 复杂的分割
    # r表示不转义,分隔符可以是;或者,或者/,或者空格后面跟0个多个额外的空格,然后按照这个模式去分割
    url='www.cnblogs.com/liu66blog'
    import re
    url_list=re.split(r'[.;/]s*',url)
    print(url_list)
    # -----------输出----------------------
    # ['www', 'cnblogs', 'com', 'liu66blog']
    # ------------------------------------
    
    
    # 4.字符串的开头和结尾的处理
    #  比方我们要查一个名字是以什么开头或者什么结尾
    url='www.cnblogs.com/liu66blog'
    result=url.endswith('blog')
    print(result)
    result=url.startswith('ww.')
    print(result)
    # -----------输出----------------------
    # True
    # False
    # ------------------------------------
    
    
    # 5.字符串的查找和匹配
    # 一般查找
    # 我们可以很方便的在长的字符串里面查找子字符串,会返回子字符串所在位置的索引, 若找不到返回-1
    url='www.cnblogs.com/liu66blog'
    result=url.find('liu66')
    print(result)
    result=url.find('liuyang')
    print(result)
    # -----------输出----------------------
    # 16
    # -1
    # ------------------------------------
    
    # 复杂查找
    data_str='2018/2/22'
    result=re.match(r'd+/d+/d+',data_str)
    if result:
        print('ok,存在')
    # -----------输出----------------------
    # ok,存在
    # ------------------------------------
    
    
    # 6.字符串的替换
    # 普通的替换//用replace就可以
    url='www.cnblogs.com/liu66blog'
    url_new=url.replace('www.','')
    print(url_new)
    # -----------输出----------------------
    # cnblogs.com/liu66blog
    # ------------------------------------
    
    # 复杂的替换 利用re.sub函数
    url='www.cnblogs.com/liu66blog'
    url_new=re.sub(r'dd','00',url)
    print(url_new)
    # -----------输出----------------------
    # cnblogs.com/liu00blog
    # ------------------------------------
    
    
    # 7.字符串中去掉一些字符
    # 去除空格//对文本处理的时候比如从文件中读取一行,然后需要去除每一行的两侧的空格,table或者是换行符
    url='  www.cnblogs.com/liu66blog  '
    url_new=url.strip()
    print(url_new)
    
    # 复杂的文本清理,可以利用str.translate,
    # 先构建一个转换表,table是一个翻译表,表示把'w'转成大写的'W',
    # 然后在old_str里面去掉'liu66',然后剩下的字符串再经过table 翻译
    # Python3.4已经没有string.maketrans()了,取而代之的是内建函数:
    # bytearray.maketrans()、bytes.maketrans()、str.maketrans()
    url='www.cnblogs.com/liu66blog'
    
    # 创建翻译表
    instr='w'
    outstr='W'
    table=str.maketrans(instr,outstr)
    
    url_new=url.translate(table)
    print(url_new)
    # -----------输出----------------------
    # WWW.cnblogs.com/liu66blog
    # ------------------------------------
    
    # 8.找最长的单词
    txt='Python is a programming language that lets you work more quickly and integrate your systems more effectively. ' 
        'You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs. ' 
        'Learn more about Python..'
    # 使用空格分隔
    txt_list=txt.split(' ')
    # 使用sorted()函数按照单词长度排序
    txt_list_new=sorted(txt_list,key=lambda x:len(x),reverse=True)
    # 定义一个空列表,存储最长的
    longest_word=[]
    # 判断后面的单词长度
    for i,word in enumerate(txt_list_new):
        if len(txt_list_new[i])<len(txt_list_new[0]):
            break
        else:
            longest_word.append(txt_list_new[i])
    print(longest_word)
    # -----------输出----------------------
    # ['effectively.', 'productivity']
    # ------------------------------------
    
    
    # 9.找出指定长度的单词
    len_4_word=filter(lambda x:5>len(x)>=4,txt_list)
    # 注意python3 filter返回不再是列表 需要自己转换!!
    len_4_word_list=list(len_4_word)
    # 转换成去重元祖
    len_4_word_tuple=tuple(set(len_4_word_list))
    print(len_4_word_list)
    print(len_4_word_tuple)
    # -----------输出----------------------
    # ['that', 'lets', 'work', 'more', 'your', 'more', 'more']
    # ('your', 'more', 'lets', 'that', 'work')
    # ------------------------------------
    
    
    # 10.使用最频繁的单词
    from collections import Counter
    # most_common(x) x代表列举的个数
    print(Counter(txt_list).most_common(6))
    # -----------输出----------------------
    # [('more', 3), ('and', 3), ('Python', 2), ('is', 1), ('a', 1), ('programming', 1)]
    # ------------------------------------
    
    
    # 11.列出所有大写的单词
    title_words_list=[]
    for i in txt_list:
        if i.istitle():
            title_words_list.append(i)
    # 得到去重字典
    title_words_dict=set(title_words_list)
    print(title_words_list)
    print(title_words_dict)
    # -----------输出----------------------
    # ['Python', 'You', 'Python', 'Learn', 'Python..']
    # {'Python..', 'Learn', 'Python', 'You'}
    # ------------------------------------
    
    
    # 12.未完待续...
  • 相关阅读:
    服务的有状态和无状态
    微服务-服务治理
    微服务-服务注册与发现
    微服务-技术的选型
    微服务的数据一致性
    微服务的服务拆分
    初识微服务
    REST API风格
    算法
    JS 判断PC、android、ios、微信浏览器
  • 原文地址:https://www.cnblogs.com/liu66blog/p/8465465.html
Copyright © 2020-2023  润新知