이 글에서는 개요, 문자열 대소문자 변환, 문자열 형식 출력, 문자열 검색, 위치 지정 및 대체, 문자열 결합 및 분할, 문자열 판단, 문자열 인코딩 등 Python에 내장된 문자열 메서드 중 일부를 주로 소개합니다.
문자열 처리는 매우 일반적인 기술이지만 Python에는 내장된 문자열 메서드가 너무 많아 종종 잊어버리곤 합니다. 빠른 참고를 위해 각 내장 메서드는 Python 3.5.1을 기반으로 특별히 작성되었습니다. 예제는 쉽게 분류됩니다. 인덱싱.
PS: 개요에서 녹색 제목을 클릭하여 해당 카테고리를 입력하거나 오른쪽 사이드바에 있는 기사 디렉토리를 통해 해당 방법을 빠르게 색인화할 수 있습니다.
대소문자 변환
str.capitalize()
첫 글자를 대문자로 변환 , 첫 번째 단어가 대문자 형식이 아닌 경우 원래 문자열이 반환된다는 점에 유의하세요.
'adi dog'.capitalize()
# 'Adi dog'
'abcd Xu'.capitalize()
# 'Abcd Xu'
'Xu abcd'.capitalize()
# 'Xu abcd'
'ß'.capitalize()
# 'SS'
str. lower()
문자열을 소문자로 변환합니다. 이는 ASCII로 인코딩된 문자에만 유효합니다.
'DOBI'.lower()
# 'dobi'
'ß'.lower() # 'ß'는 독일어 소문자로, 여기에 또 다른 소문자 'ss'가 있습니다. , lower 메소드는 변환할 수 없습니다
# 'ß'
'Xu ABCD'.lower()
# 'Xu abcd'
str.casefold ( )
문자열을 소문자로 변환합니다. 유니코드 인코딩의 해당 소문자 형식이 변환됩니다.
'DOBI'.casefold()
# 'dobi'
'ß'.casefold() #독일어의 소문자 ß는 소문자 ss와 동일하며, 대문자는 SS
# 'ss'
str.swapcase()
문자열의 대소문자를 반대로 바꿉니다.
'Xu Dobi a123 ß'.swapcase()
#: 'Xu dOBI A123 SS' 여기서 ß는 대문자인 SS로 변환됩니다
단, s라는 점에 유의해야 합니다. swapcase( ).swapcase() == s가 반드시 참은 아닙니다:
u'xb5'
# 'μ'
u'xb5'.swapcase()
# 'Μ'
u'xb5'.swapcase().swapcase()
# 'μ'
hex(ord(u'xb5'.swapcase().swapcase() ))
Out[154]: '0x3bc'
'Μ'(M이 아닌 mu)의 소문자는 'μ'를 쓰는 것과 정확히 같습니다.
str.title()
문자열에 있는 각 "단어"의 첫 글자를 대문자로 표시합니다. "단어"를 판단하는 기준은 띄어쓰기와 구두점을 기준으로 하기 때문에 영어 소유격이나 일부 영어 약어를 대문자로 표기하는 경우 오류가 발생합니다.
'Hello world'.title()
# 'Hello World'
'중국어 abc def 12gh'.title()
# '중국어 Abc Def 12Gh'
# 하지만 이 방법은 완벽하지 않습니다.
"they're Bill's friends from the UK".title()
# "They'Re Bill'S Friends From The UK"
str.upper()
문자열의 모든 문자를 대문자로 변환하고, 대문자로 변환할 수 없는 문자는 자동으로 무시합니다.
'중국어 abc def 12gh'.upper()
# '중국어 ABC DEF 12GH'
s.upper().isupper()가 반드시 True일 필요는 없다는 점에 유의해야 합니다.
문자열 형식 출력
str.center(width[, fillchar])
주어진 너비에 따라 문자열을 가운데에 배치합니다. 지정된 문자 수에 따라 길이를 초과하거나, 지정된 길이가 문자열 길이보다 작은 경우 원래 문자열을 반환합니다.
'12345'.center(10, '*')
# '**12345***'
'12345'.center(10)
# ' 12345 '
str.ljust(width[, fillchar]); str.rjust(width[, fillchar])
왼쪽에 문자열 내용을 포함하여 지정된 길이의 문자열을 반환합니다. (오른쪽) 길이가 문자열 길이보다 작으면 원래 문자열을 반환합니다. 기본 패딩은 ASCII 공백이며, 패딩된 문자열을 지정할 수 있습니다.
'dobi'.ljust(10)
# 'dobi'
'dobi'.ljust(10, '~')
# 'dobi~~~~~ ~'
'dobi'.ljust(3, '~')
# 'dobi'
'dobi'.ljust(3)
# 'dobi'
str.zfill(width)
문자열을 '0'으로 채우고 지정된 너비의 문자열을 반환합니다.
"42".zfill(5)
# '00042'
"-42".zfill(5)
# '-0042'
'dd' .zfill(5)
# '000dd'
'--'.zfill(5)
# '-000-'
' '.zfill(5)
# '0000'
''.zfill(5)
# '00000'
'dddddddd'.zfill(5)
# 'dddddddd'
str.expandtabs(tabsize=8)
인접 문자열 사이의 간격이 지정된 공백 수 내에 유지되도록 가로 탭 문자를 지정된 공백으로 바꿉니다.
탭 = '1t23t456t7890t1112131415t161718192021'
tab.expandtabs()
# '1 23 456 7890 1112131415 161718192021'
# '123456781234567812345678123456 781234567812345678'
탭 위의 공백 개수와 출력 위치 간의 관계 .expandtabs(4)
# '1 23 456 7890 1112131415 161718192021'
# '12341234123412341234123412341234'
str.format(^args,^^kwargs)
🎜>
# '내 이름은 John입니다. 저는 56세입니다.'
text = '외부 보호 덮개'
# 4
# 1
# 0
str.find(sub[, start[, end]]); str.rfind(sub [, start[, end]])
text = '외부 보호 덮개'
# 3
# -1
Out[121]: 3
아웃[122]: 20
아웃[123]: -1
아웃[124]: 20
아웃[125]: 20
아웃[126]: 20
아웃[129]: -1
str.index(sub[, start [, end]]); str.rindex(sub[, start[, end]])
find() rfind()와 유사하지만, 발견되지 않으면 ValueError가 발생한다는 차이점이 있습니다.
'dog wow wow jiao'.replace('wow', 'wang')
# 'dog wang wang jiao'
# 'dog wow wow jiao'
# 'dog wow wow jiao'
# 'dog wang wang jiao'
# 'dog wang wang jiao'
str.lstrip([chars]); str.rstrip([문자]); str.strip([문자])
' dobi'.lstrip()
# 'dobi'
'db.kun.ac.cn'.lstrip(' dbk')
# '.kun.ac.cn'
# ' 도비'
'db.kun.ac.cn'.rstrip( 'acn')
# 'db.kun.ac.'
# 'dobi'
'db.kun.ac.cn'.strip ('db.c')
# 'kun.ac.cn'
'db.kun.ac.cn'.strip('cbd.un')
# 'kun.a'
static str.maketrans(x[, y[, z]]); str.translate(table)
maktrans는 번역에 사용할 비교 테이블을 생성하는 데 사용되는 정적 메서드입니다.
maktrans에 매개변수가 하나만 있는 경우 매개변수는 사전이어야 합니다. 사전의 키는 유니코드 인코딩(정수)이거나 길이가 1인 문자열입니다. 사전의 값은 None 또는 임의의 문자열일 수 있습니다. 유니코드 인코딩.
ord('o')
# 111
# 97
# '0x72d7'
table = str.maketrans(b)
# 'dobi is a dog'
# 'alph hs a alg'
# 'aph hs a ag'
문자열의 결합 및 분할
str.join(iterable)
# '2012-3-12'
# TypeError: 시퀀스 항목 0: 예상되는 str 인스턴스, int 발견
# TypeError: 시퀀스 항목 2: 예상되는 문자열 인스턴스, 바이트가 발견되었습니다
'-'.join(['2012'])
# '2012'
'-'.join([])
# ''
' -'.join([None])
# TypeError: 시퀀스 항목 0: 예상되는 str 인스턴스, NoneType 발견
'-'.join([''])
# ''
','.join({'dobi':'dog', 'polly':'bird'})
# 'dobi,polly'
','.join({ 'dobi':'dog', 'polly':'bird'}.values())
# 'dog,bird'
str.partition(sep); str.rpartition(sep)
'dog wow wow jiao'.partition('wow')
# ('dog', 'wow', 'wow jiao')
'dog wow wow jiao'.partition('dog')
# ('', 'dog', 'wow wow jiao')
'dog wow wow jiao'.partition('jiao')
# ('dog wow wow', 'jiao', '')
'dog wow wow jiao'.partition('ww')
# ('dog wow wow jiao', '', '' )
'dog wow wow jiao'.rpartition('wow')
Out[131]: ('dog wow', 'wow', 'jiao' )
'dog wow wow jiao'.rpartition('dog')
Out[132]: ('', 'dog', 'wow wow jiao')
'dog 와우 와우 jiao'.rpartition('jiao')
Out[133]: ('dog wow wow ', 'jiao', '')
'dog wow wow jiao'.rpartition('ww ')
아웃[135]: ('', '', 'dog wow wow jiao')
str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1)
'1,2,3'.split(','), '1, 2, 3'.rsplit()
# (['1 ', '2', '3'], ['1,', '2,', '3'])
'1,2,3'.split(',', maxsplit=1 ), '1,2,3'.rsplit(',', maxsplit=1)
# (['1', '2,3'], ['1,2', '3'])
'1 2 3'.split(), '1 2 3'.rsplit()
# (['1', '2', '3'], ['1', '2 ', '3'])
'1 2 3'.split(maxsplit=1), '1 2 3'.rsplit(maxsplit=1)
# (['1', '2 3'], ['1 2', '3'])
' 1 2 3 '.split()
# ['1', '2', '3']
'1,2,,3,'.split(','), '1,2,,3,'.rsplit(',')
# (['1', '2', '', '3', ''], ['1', '2', '', '3', ''])
''.split()
# []
''.split('a')
# ['']
'bcd'.split('a')
# ['bcd']
'bcd'.split( 없음)
# ['bcd']
str.splitlines([keepends])
字符串以行界符为分隔符拆分为列表;当 keepends 为True,拆分后保留行界符,能被识别的行界符见官方文档。
'ab cnnde fgrklrn'.splitlines()
# ['ab c', '', 'de fg ', 'kl']
'ab cnnde fgrklrn'.splitlines(keepends=True)
# ['ab cn', 'n', 'de fgr', 'klrn']
"".splitlines(), ''.split('n') #注意两者的区别
# ([], [''])
"One Linen".splitlines()
# (['한 줄'], ['두 줄', ''])
字符串条件判断
str.endswith( 접미사[, 시작[, 끝]]); str.startswith(prefix[, start[, end]])
text = '외부 보호 덮개'
text.endswith('ing')
# True
text .endswith(('gin', 'ing'))
# True
text.endswith('ter', 2, 5)
# True
text.endswith('ter ', 2, 4)
# False
str.isalnum()
字符串和数字任意组合,即为真,简而言之:
只要 c.isalpha(), c.isdecimal(), c.isdigit(), c.isnumeric() 中任意一个为真,则 c.isalnum() 为真。
'dobi'.isalnum()
# True
'dobi123'.isalnum()
# True
'123'.isalnum( )
# 참
'徐'.isalnum()
# 참
'dobi_123'.isalnum()
# 거짓
'dobi 123'.isalnum()
# False
'%'.isalnum()
# False
str.isalpha()
Unicode 字符数据库中작为 “Letter”(这些字符一般具에는 "Lm", "Lt", "Lu", "Ll" 또는 "Lo"가 있습니다. 🎜># 참
'do bi'.isalpha()
# 거짓
'dobi123'.isalpha()
# 거짓
'徐' .isalpha()
# 참
三个方法적 区别에서 于对 유니코드 일반적으로 사용되는 标识적 真值判断范围불동:
isdecimal: Nd,
isdigit: No, Nd,
숫자와 소수의 차이점은 일부 숫자 문자열이 숫자이지만 소수가 아니라는 점입니다. 자세한 내용은 여기를 클릭하세요
num = 'u2155'
print(num)
# ⅕
num .isdecimal(), num.isdigit(), num.isnumeric()
#(False, False, True)
num = 'u00B2'
print(num)
# ²
num.isdecimal(), num.isdigit(), num.isnumeric()
# (False, True, True)
num = "1" #unicode
num .isdecimal (), num.isdigit(), num.isnumeric()
# (참, 참, 참)
num = "'Ⅶ'"
num.isdecimal(), num .isdigit (), num.isnumeric()
# (False, False, True)
num = "十"
num.isdecimal(), num.isdigit(), num.isnumeric ()
# (거짓, 거짓, 참)
num = b"1" # byte
num.isdigit() # True
num.isdecimal() # AttributeError 'bytes' 객체에 'isdecimal' 속성이 없습니다
num.isnumeric() # AttributeError 'bytes' 객체에 'isnumeric' 속성이 없습니다
str.isidentifier()
문자열이 유효함은 법적 식별자입니다.
'def'.isidentifier()
# True
'with'.isidentifier()
# True
'false'.isidentifier ()
# 참
'dobi_123'.isidentifier()
# 참
'dobi 123'.isidentifier()
# 거짓
'123'.isidentifier()
# False
str.islower()
'Xu'.islower()
# False
'ß'.islower() #독일어 대문자
# False
'a Xu'.islower()
# True
'ss'.islower()
# True
'23'.islower()
# 거짓
'Ab'.islower()
# 거짓
str.isprintable()
문자열의 모든 문자가 인쇄 가능한 문자인지 또는 문자열이 비어 있는지 판단합니다. 유니코드 문자 집합의 "기타" 및 "구분 기호" 범주에 있는 문자는 인쇄할 수 없는 문자입니다(그러나 ASCII 공백(0x20)은 포함하지 않음).
'dobi123'.isprintable()
# True
'dobi123n'.isprintable()
Out[24]: False
'dobi 123' .isprintable()
# 참
'dobi.123'.isprintable()
# 참
''.isprintable()
# 참
str.isspace()
문자열에 문자가 하나 이상 있는지, 모든 문자가 공백 문자인지 확인합니다.
인 [29]: 'rnt'.isspace()
아웃[29]: True
인 [30]: ''.isspace()
아웃[30 ]: False
In [31]: ' '.isspace()
Out[31]: True
str.istitle()
문자열의 문자가 대문자인지, 알파벳이 아닌 문자는 무시되는지 여부를 결정합니다.
'Python의 작동 방식'.istitle()
# True
'Python의 작동 방식'.istitle()
# False
'Python의 작동 방식 '.istitle()
# False
'Python의 작동 방식'.istitle()
# True
' '.istitle()
# False
''.istitle()
# 거짓
'A'.istitle()
# 참
'a'.istitle()
# 거짓
'Diaoshui Abc Def 123'.istitle()
# True
str.isupper()
'Xu'.isupper()
# False
'DOBI'.isupper()
Out[41]: True
'Dobi'.isupper()
# False
'DOBI123'.isupper()
# 참
'DOBI 123'.isupper()
# 참
'DOBIt 123'.isupper()
# 참
'DOBI_123' . isupper()
# 참
'_123'.isupper()
# 거짓
문자열 인코딩
str.encode(encoding="utf-8", 오류="엄격")
fname = 'Xu'
fname.encode('ascii')
# UnicodeEncodeError: 'ascii' 코덱은 'u5f90' 문자를 인코딩할 수 없습니다...
fname.encode('ascii', 'replace')
# b'?'
fname.encode('ascii', 'ignore')
# b''
fname.encode('ascii', 'xmlcharrefreplace')
# b'Xu'
fname.encode('ascii', 'backslashreplace')
# b'\u5f90'
Python에 내장된 문자열 분석과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 참고하세요. !

Tomergelistsinpython, youcanusethe operator, extendmethod, listcomprehension, oritertools.chain, 각각은 각각의 지위를 불러 일으킨다

Python 3에서는 다양한 방법을 통해 두 개의 목록을 연결할 수 있습니다. 1) 작은 목록에 적합하지만 큰 목록에는 비효율적입니다. 2) 메모리 효율이 높지만 원래 목록을 수정하는 큰 목록에 적합한 확장 방법을 사용합니다. 3) 원래 목록을 수정하지 않고 여러 목록을 병합하는 데 적합한 * 운영자 사용; 4) 메모리 효율이 높은 대형 데이터 세트에 적합한 itertools.chain을 사용하십시오.

join () 메소드를 사용하는 것은 Python의 목록에서 문자열을 연결하는 가장 효율적인 방법입니다. 1) join () 메소드를 사용하여 효율적이고 읽기 쉽습니다. 2)주기는 큰 목록에 비효율적으로 운영자를 사용합니다. 3) List Comprehension과 Join ()의 조합은 변환이 필요한 시나리오에 적합합니다. 4) READE () 방법은 다른 유형의 감소에 적합하지만 문자열 연결에 비효율적입니다. 완전한 문장은 끝납니다.

pythonexecutionissprocessoftransformingpythoncodeintoExecutableInstructions.1) the -interreadsTheCode, ConvertingItintoByTecode, thethepythonVirtualMachine (pvm)을 실행합니다

Python의 주요 특징은 다음과 같습니다. 1. 구문은 간결하고 이해하기 쉽고 초보자에게 적합합니다. 2. 개발 속도 향상, 동적 유형 시스템; 3. 여러 작업을 지원하는 풍부한 표준 라이브러리; 4. 광범위한 지원을 제공하는 강력한 지역 사회와 생태계; 5. 스크립팅 및 빠른 프로토 타이핑에 적합한 해석; 6. 다양한 프로그래밍 스타일에 적합한 다중-파라 디그 지원.

Python은 해석 된 언어이지만 편집 프로세스도 포함됩니다. 1) 파이썬 코드는 먼저 바이트 코드로 컴파일됩니다. 2) 바이트 코드는 Python Virtual Machine에 의해 해석되고 실행됩니다. 3)이 하이브리드 메커니즘은 파이썬이 유연하고 효율적이지만 완전히 편집 된 언어만큼 빠르지는 않습니다.

USEAFORLOOPHENTERATINGOVERASERASERASPECIFICNUMBEROFTIMES; USEAWHILLOOPWHENTINUTIMONDITINISMET.FORLOOPSAREIDEALFORKNOWNSEDINGENCENCENS, WHILEWHILELOOPSSUITSITUATIONS WITHERMINGEDERITERATIONS.

Pythonloopscanleadtoerrors likeinfiniteloops, modifyinglistsdizeration, off-by-by-byerrors, zero-indexingissues, andnestedloopineficiencies.toavoidthese : 1) aing'i


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.