> 백엔드 개발 > 파이썬 튜토리얼 > Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

WBOY
풀어 주다: 2023-05-23 10:28:05
앞으로
1147명이 탐색했습니다.

    1. 문자열의 문자 변환

    1.1. 문자 변환의 개념

    앞서 언급한 문자열 대체는 문자열의 하위 문자열을 새로운 하위 문자열로 바꾸는 것입니다. 즉, 문자열의 단일 문자를 바꾸는 경우 maketrans 및 번역 메소드를 호출할 수 있습니다.

    먼저 maketrans 메소드를 호출하여 변환 테이블을 생성하고 해당 문자를 변환할 문자를 변환 테이블에 선언한 다음 생성된 변환 테이블을 변환 메소드에 매개변수로 전달하여 문자 변환을 구현합니다.

    변환 테이블을 생성하는 maketrans 메소드의 구문:

    str.maketrans('转换的字符', '转换后的字符','删除的字符')
    로그인 후 복사

    maketrans 메소드는 세 가지 매개변수를 전달할 수 있습니다:

    • 첫 번째 매개변수는 변환할 문자를 지정하는 데 사용됩니다. 변환된 문자도 여러 개 지정해야 하며, 숫자는 동일해야 합니다. 변환할 첫 번째 문자는 두 번째 매개변수의 첫 번째 문자로 변환되며, 이에 대해서는 사례에서 설명합니다.

    • 두 번째 매개변수는 변환된 문자를 지정하는 데 사용됩니다.

    • 세 번째 매개변수는 삭제할 문자를 지정하는 데 사용됩니다.

    변환표를 정의한 후 print를 사용하여 변환표의 내용을 인쇄할 수 있습니다. 이때 사전의 각 키:값은 해당 문자에 해당하는 서수 값입니다.

    translate 메소드는 변환 테이블을 매개변수로 전달한 후 정의된 문자열로 호출하여 최종적으로 문자 변환을 수행합니다.

    1.2. 문자 변환 적용 사례

    1) 변환 테이블 생성

    변환 테이블을 정의할 때 변환할 문자를 여러 개 지정할 경우 변환된 문자 수는 변환된 문자 수와 동일해야 합니다. 문자 , 이때 첫 번째 매개변수와 두 번째 매개변수가 교차 변환되며, 코드는 다음과 같습니다.

    contable = str.maketrans('agx', '789')
    print(contable)
    
    '''
    代码解释:
        str.maketrans('agx', '789')定义了一个转换表,其中字符a转换成字符7,字符g转换成字符8,字符x转换成字符9
        当使用print函数打印定义的转换表时,返回的是一个字典,key是被转换的字符,value是转换后的字符,并且返回的是字符的ordinal value值
        返回结果:{97: 55, 103: 56, 120: 57}
            {97是字符a: 55是字符7, 103是字符g: 56是字符8, 120是字符x: 57是字符9}
    '''
    로그인 후 복사

    인쇄 기능을 사용하면 변환 테이블을 인쇄할 수 있습니다. 반환 결과는 사전에 있는 값이며 사전에서 어떤 문자로 변환되는지 명확하게 알 수 있습니다. 아래 그림과 같이 97은 문자 a이고, 55는 문자 7이며, 97에 해당하는 문자는 55에 해당하는 문자로 변환됩니다.

    Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

    변환된 문자와 변환된 문자의 원래 값을 문자열 형식으로 직접 선언하는 것 외에도 사전 메소드를 사용하여 변환 및 변환된 문자를 선언할 수도 있습니다. 변환 테이블은 사전이지만 가장 일반적인 방법은 변환 테이블에서 직접 변환된 문자를 선언하는 것입니다.

    #使用字典的形式,在字典中声明转换的字符、被转换字符的原始值
    contable = str.maketrans({'a': '7', 'g': '8', 'x': '9'})
    print(contable)
    '''
    	此时使用print打印转换表时,就会发现转换后的字符会以原始值的形式记录在字典中,被转换的字符还是以ordinal value值表示
    '''
    #输出结果:{97: '7', 103: '8', 120: '9'}
    
    #还是使用字典的行驶,在字典中声明被转换字符、转换字符的ordinal value值
    contable = str.maketrans({97: 55, 103: 56, 120: 57})
    print(contable)
    '''
    	这种方法需要实现使用ord函数获取被转换字符、转换字符的ordinal value值,然后在字典中直接声明字符的ordinal value值
    '''
    #输出结果:{97: 55, 103: 56, 120: 57}
    로그인 후 복사

    2) 문자 변환

    #首先定义一个转换表,这个转换表可以被任意字符串调用使用
    contable = str.maketrans('agx', '789')
    
    #定义一个字符串
    mystr = 'jiangxluplader'
    
    #使用translate方法将转换表以参数的形式传入,然后由字符串调用这个方法实现字符的转换
    print(mystr.translate(contable))
    
    #输出结果:ji7n89lupl7der
    로그인 후 복사

    은 문자열의 모든 a 문자가 7로 ​​변환되고, g 문자가 모두 8로, x 문자가 모두 9로 변환되는 것을 발견했습니다.

    Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

    3) maketrans 메소드가 변환 테이블을 정의할 때 u, p

    contable = str.maketrans('agx', '789', 'up')
    mystr = 'jiangxluplader'
    print(mystr.translate(contable))
    
    '''
    	maketrans方法创建转换表时,第三个参数是指定删除的字符
    '''
    
    #输出结果:ji7n89ll7der
    로그인 후 복사

    Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

    4) maketrans 메소드가 정의하는 문자 삭제 등 삭제할 문자를 지정할 수도 있습니다. 변환 테이블에서는 변환 문자도 삭제할 수 없습니다. 특정 문자만 삭제할 수 있습니다. 예를 들어 u, p 문자만 삭제할 수 있습니다.

    Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

    2. 문자열 분할

    2.1. 문자열 분할의 개념

    Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법 소위 문자열 분할은 지정된 구분 기호에 따라 문자열을 N 조각으로 나누는 것을 의미합니다. 예를 들어 문자열 "aaa bbb"의 경우 기본 구분 기호는 공백입니다. 구분 기호에 따라 문자열은 "aaa"와 "bbb"로 나눌 수 있습니다. 문자열을 분할하는 방법에는 두 가지가 있습니다.

    1) 문자열을 분할하려면 분할 또는 rsplit 메서드를 호출하세요.

    분할 방법은 문자열의 왼쪽부터 시작하여 앞에서부터 문자열을 분할하는 것입니다. 그리고 뒤로.

      rsplit 방법은 문자열의 오른쪽부터 시작하여 뒤에서 앞으로 시작하여 문자열을 분할하는 것입니다.
    • split 및 rsplit 메서드는 문자열에서 구분 기호가 나타나는 모든 위치를 구분 기호에 따라 분할합니다.
    • 기본 구분 기호는 공백 문자열입니다. 이 두 가지 방법으로 최대 분할 수를 지정하지 않으면 출력 내용에 차이가 없으며 두 방법의 반환 값은 목록입니다.

      当字符串中没有指定的分隔符时,这两个方法都会返回字符串本身,但是也会将字符串本身放在列表中。

      2)调用方法partition或者rpartition劈分字符串

      partition和rpartition这两个方法在调用的时候必须指定分隔符,然后对字符串进行劈分,这两个方法对字符串劈分后会返回一个元组。

      • partition方法是左劈分,从左往右找到分隔符第一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      • rpartition方法是右劈分,从右往左找到分隔符第一次出现的位置,或者从左往右找到分隔符最后一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      partition方法和rpartition只会将字符串中第一次出现分隔符的位置,进行劈分,一分为三,这就是与split方法的最大区别

      partition方法和rpartition两个方法只是开始劈分的位置处不同,然后将字符串劈分为三个元素:

      • 分隔符前面的部分

      • 分隔符

      • 分隔符后面的部分

      如果字符串中不存在指定的分隔符,两个方法都会返回字符串本身,partition方法劈分的三个元素顺序依次为:字符串本身、空字符串、空字符串,rpartition方法劈分的三个元素依次为:空字符串、空字符串、字符串本身。

      2.2.调用方法split或者rsplit劈分字符串

      1)基本的劈分案例

      #原始字符串
      mystr = "DevOps Jenkins Kubernetes"
      
      #左劈分
      print(mystr.split())
      
      #右劈分
      print(mystr.rsplit())
      
      '''
      	左劈分是从DevOps第一个空格字符串处开始劈分,右劈分是从Kubernetes最后一个空格字符串处开始劈分
      	默认的劈分字符串是空格字符串,只要遇到空格字符串,就将空格字符串左侧的字符串劈分出来。
      '''
      로그인 후 복사

      可以看到split和rsplit两个方法对字符串劈分后,并没有明显的区别。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      2)通过参数sep指定分隔符劈分字符串

      在split和rsplit方法中都可以使用sep参数指定分隔符,从而根据指定的分隔符去劈分字符串。

      mystr = "DevOps|Jenkins|Kubernetes"
      print(mystr.split(sep='|'))
      print(mystr.rsplit(sep='|'))
      
      '''
      	split(sep='|')、rsplit(sep='|')指定分隔符为“|”
      '''
      로그인 후 복사

      可以看到split和rsplit两个方法对字符串劈分后,并没有明显的区别。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      当指定的分隔符字符串不存在时,则会返回字符串本身,但是也会将字符串本身放在列表中。

      mystr = "DevOps Jenkins Kubernetes"
      print(mystr.split(sep='|'))
      print(mystr.rsplit(sep='|'))
      로그인 후 복사

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      3)通过参数maxsplit指定劈分字符串的最大劈分次数

      在split和rsplit方法中都可以使用maxsplit参数指定劈分字符串的最大劈分次数,什么意思呢?原本一个字符串可以被劈分6次,但是我们只需要劈分2次就行,就可以使用maxsplit参数指定指定劈分字符串的最大劈分次数。

      当指定了最大的劈分次数时,当超过最大的劈分次数后,剩余的子串会单独作为一部分输出,此时split和rsplit两个劈分方法就会有明显的区别。

      #定义原始字符串
      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      
      '''
      	使用split方法是从左往右开始劈分,从第一个子串位置处开始劈分,分隔符为"|",劈分次数为2,本身这个字符串可以被劈分5次,我们只劈分2次,那么DevOps、Jenkins会被劈分出来作为列表的单独元素,而剩余的子串Kubernetes|Python|Gitlab会被作为一部分放在列表的一个元素内
      '''
      print(mystr.split(sep='|', maxsplit=2))
      #输出结果:['DevOps', 'Jenkins', 'Kubernetes|Python|Gitlab']
      
      '''
      	使用rsplit方法是从右往左开始劈分,从最后一个子串处开始劈分,分隔符为"|",劈分次数为2,本身这个字符串可以被劈分5次,我们只劈分2次,那么Gitlab、Python这两个字符串会被劈分出来作为列表的单独元素,而剩余的字符DevOps|Jenkins|Kubernetes会被作为一部分,放在列表的一个元素内
      '''
      print(mystr.rsplit(sep='|', maxsplit=2))
      #输出结果:['DevOps|Jenkins|Kubernetes', 'Python', 'Gitlab']
      로그인 후 복사

      当在劈分方法内指定了最大的劈分次数的参数时,split左劈分和rsplit右劈分就会有明显的区别,split方法是从前往后根据分隔符进行劈分,rsplit方法是从后往前根据分隔符进行劈分。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      2.3.调用方法partition或者rpartition劈分字符串

      partition方法是左劈分,从左往右找到分隔符第一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      rpartition方法是右劈分,从右往左找到分隔符第一次出现的位置,或者从左往右找到分隔符最后一次出现的位置,然后开始劈分字符串,始终劈分成三个元素,第一个元素是分隔符左侧的部分,第二个元素是分隔符,第三个元素是分隔符后面的部分。

      这两个方法,只会根据一个分隔符进行劈分字符串,且始终劈分成三个元素,partition方法的分隔符取决于在字符串中第一次出现的分隔符,rpartition方法的分隔符取决于字符串中最后一次出现的分隔符。

      1)调用方法partition劈分字符串

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.partition('|'))
      
      '''
      	partition从左往右找到第一次出现分隔字符串的位置,从这里开始劈分字符串,分隔符左侧的部分(DevOps)为第一个元素,分隔符(|)为第二个元素,分隔符右侧的部分(Jenkins|Kubernetes|Python|Gitlab)为第三个元素。
      '''
      
      #输出结果:('DevOps', '|', 'Jenkins|Kubernetes|Python|Gitlab')
      로그인 후 복사

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      2)调用方法rpartition劈分字符串

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.rpartition('|'))
      
      '''
      	rpartition从左往右找到最后一次出现分隔字符串的位置,分隔符左侧的部分(DevOps)为第一个元素,分隔符(|)为第二个元素,分隔符右侧的部分(Jenkins|Kubernetes|Python|Gitlab)为第三个元素。
      '''
      
      #输出结果:('DevOps|Jenkins|Kubernetes|Python', '|', 'Gitlab')
      로그인 후 복사

      确实和理论说明的一样,从左往右找到最后一次分隔符出现的位置,分隔符左侧的部分为元组中的第一个元素,分隔符为第二个元素,分隔符右侧的部分为元组中的第三个元素。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      3)当字符串中只有一个分隔符字符串且分隔符后没有任何字符时

      当字符串中只有一个分隔符字符串时,且分隔符后面没有任何字符串,此时无论是partition方法还是rpartition方法,劈分的字符串第三个元素一定为空。

      mystr = "DevOps|"
      print(mystr.partition('|'))
      print(mystr.rpartition('|'))
      로그인 후 복사

      第三个元素取的都是分隔符后面的部分,分隔符后面的部分什么也没有,因此就会输出空字符串。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      4)当字符串中不存在指定的分隔符字符串(partition方法)

      如果字符串中不存在指定的分隔符,partition方法劈分的三个元素顺序依次为:字符串本身、空字符串、空字符串。

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.partition('*'))
      
      #输出结果:('DevOps|Jenkins|Kubernetes|Python|Gitlab', '', '')
      로그인 후 복사

      第一个元素是字符串的本身,第二个元素是空字符串,第三个元素也是空字符串。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      4)当字符串中不存在指定的分隔符字符串(rpartition方法)

      如果字符串中不存在指定的分隔符,rpartition方法劈分的三个元素顺序依次为:空字符串、空字符串、字符串本身。

      mystr = "DevOps|Jenkins|Kubernetes|Python|Gitlab"
      print(mystr.rpartition('*'))
      로그인 후 복사

      第一个元素是空字符串,第二个元素是空字符串,第三个元素是字符串的本身。

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      3.字符串的合并

      可以调用方法join将多个字符串合并成一个字符串。语法格式如下:

      '字符串的间隔符'.join(列表|数组)
      
      字符串的间隔符可以指定,也可以不指定,指定后,每个元素字符串在合并时都会在后面添加一个分隔符。
      로그인 후 복사

      1)使用join方法将列表中多个字符串进行合并

      使用join方法可以将列表中的多个元素,元素也都是字符串,将这些字符串进行合并。

      print(''.join(["Python", "Go", "K8S"]))
      
      #输出结果:PythonGoK8S
      로그인 후 복사

      使用join方法将列表中的每个元素合并时添加一个分隔符“|”

      print('|'.join(["Python", "Go", "K8S"]))
      
      #输出结果:Python|Go|K8S
      로그인 후 복사

      2)使用join方法将元组中的多个字符串进行合并

      join方法也可以将元组中的元素合并。

      print('|'.join(("Python", "Go", "K8S")))
      
      #输出结果:Python|Go|K8S
      로그인 후 복사

      3)可以把字符串看成是字符的列表,然后使用join方法将这些字符合并成字符串

      可以把字符串看成是字符的列表,然后使用join将这些字符加上分隔符合并成新的字符串。

      print('|'.join("Python"))
      
      #输出结果:P|y|t|h|o|n
      로그인 후 복사

      Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법

      위 내용은 Python 문자열에서 문자 변환, 문자열 분할 및 문자열 병합 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:yisu.com
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿