Python에서 문자열 서브스트링을 가져오려면 어떻게 해야 하나요?
까지의 새 문자열 끝).myString[2:end]
두 번째 부분이 빠지면 '끝까지'가 되고 첫 번째 부분이 빠지면 처음부터 시작하는 건가요?
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'
Python은 이 개념을 "슬라이싱"이라고 부르며 문자열 이상에서 작동합니다.포괄적인 소개는 이쪽을 봐 주세요.
아무도 그것을 언급하지 않았기 때문에 단지 완성도를 위해.배열 슬라이스의 세 번째 매개 변수는 단계입니다.따라서 문자열을 되돌리는 작업은 다음과 같이 간단합니다.
some_string[::-1]
또는 대체 문자를 선택할 수 있습니다.
"H-e-l-l-o- -W-o-r-l-d"[::2] # outputs "Hello World"
문자열을 전진 또는 후진할 수 있기 때문에 슬라이스를 처음부터 배열할 수 있는 일관성이 유지됩니다.
Subst()는 보통 다음과 같이 동작합니다(PHP 및 Perl).
s = Substr(s, beginning, LENGTH)
파라미터는 다음과 같습니다.beginning
★★★★★★★★★★★★★★★★★」LENGTH
.
그러나 Python의 동작은 다릅니다.시작과 종료 후(!)를 예상합니다.이것은 초보자가 발견하기 어렵다.따라서 기판(s, begining, length)의 올바른 대체 방법은 다음과 같습니다.
s = s[ beginning : beginning + LENGTH]
이것을 실현하는 일반적인 방법은 끈을 자르는 것입니다.
MyString[a:b]
는 인덱스 a에서 (b - 1)까지의 서브스트링을 제공합니다.
여기서 알 수 없는 예가 있습니다.풀(shallow) 복사입니다.
>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>
타입 문자열이)의 카피를 할 때의 입니다.[:]
목록을 얕게 복사합니다. 명확한 이유 없이 사용되는 Python 목록 슬라이스 구문을 참조하십시오.
Python에서 문자열을 서브스트링하여 3번째 문자부터 문자열 끝까지 새로운 문자열을 가져올 수 있는 방법이 있습니까?
아마도
myString[2:end]
네, 이름을 할당하거나 바인드하면 실제로 작동합니다.end
, , , , , , , , , , , , , , , , , , , , , , , , , , .None
:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
슬라이스 표기법에는 다음 3가지 중요한 인수가 있습니다.
- 개시하다
- 이제 그만
- 걸음
하지 않을 경우 은 "Default" 입니다.None
명쾌하게 넘어갈 수 - 지 pass pass - - 、 - 、 하 、 - 、 - 、 - 、 - 、 - 、 - - 。
>>> stop = step = None
>>> start = 2
>>> myString[start:stop:step]
'34567890'
두 번째 부분을 남기는 것이 '끝까지'를 의미한다면, 첫 번째 부분을 남기는 것이 처음부터 시작인가요?
예, 예를 들어 다음과 같습니다.
>>> start = None
>>> stop = 2
>>> myString[start:stop:step]
'12'
슬라이스에는 start가 포함되지만 stop까지만 올라가고 stop은 포함되지 않습니다.
이 「」인 None
는 " " " 를 사용합니다1
스텝에 대해서.마이너스 정수로 스텝을 밟으면 Python은 처음부터 끝까지 스마트합니다.
>>> myString[::-1]
'0987654321'
슬라이스 표기 설명 질문에 대한 답변에서 슬라이스 표기법에 대해 자세히 설명합니다.
'끝'만 빼고 바로 거기야슬라이스 표기법이라고 합니다.예시는 다음과 같습니다.
new_sub_string = myString[2:]
두 번째 파라미터를 생략하면 암묵적으로 문자열의 끝입니다.
논의에 두 가지 사항을 추가하고 싶습니다.
하시면 됩니다.
None
대신 빈 공간에 "시작부터" 또는 "끝까지"를 지정합니다.'abcde'[2:None] == 'abcde'[2:] == 'cde'
이는 빈 공간을 인수로 지정할 수 없는 함수에서 특히 유용합니다.
def substring(s, start, end): """Remove `start` characters from the beginning and `end` characters from the end of string `s`. Examples -------- >>> substring('abcde', 0, 3) 'abc' >>> substring('abcde', 1, None) 'bcde' """ return s[start:end]
Python에는 슬라이스 개체가 있습니다.
idx = slice(2, None) 'abcde'[idx] == 'abcde'[2:] == 'cde'
번호가 되어 있고 인 경우 할 수 .myString " " " 6 " " " " " " " " " 9 " " " " , " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ""acct = myString[6:][:9]
.
작전본부가 그걸 받아들인다면 실험적인 방법으로 시도해보고 싶을 거야
myString[2:][:999999]
동작합니다.에러는 발생하지 않고, 디폴트의 「문자열 패딩」은 발생하지 않습니다.
Python으로 PHP 에는 Python, Python이 많이 .substr(string, beginning, LENGTH)
.
Python을 했을 경우string[beginning:end]
많은 엔드 인덱스를 계산해야 하기 때문에 보다 쉬운 방법은string[beginning:][:length]
많은 수고를 덜었습니다.
str1='There you are'
>>> str1[:]
'There you are'
>>> str1[1:]
'here you are'
#To print alternate characters skipping one element in between
>>> str1[::2]
'Teeyuae'
#To print last element of last two elements
>>> str1[:-2:-1]
'e'
#Similarly
>>> str1[:-2:-1]
'e'
#Using slice datatype
>>> str1='There you are'
>>> s1=slice(2,6)
>>> str1[s1]
'ere '
text = "StackOverflow"
#using python slicing, you can get different subsets of the above string
#reverse of the string
text[::-1] # 'wolfrevOkcatS'
#fist five characters
text[:5] # Stack'
#last five characters
text[-5:] # 'rflow'
#3rd character to the fifth character
text[2:5] # 'rflow'
#characters at even positions
text[1::2] # 'tcOefo'
놓쳤을 수도 있지만, 이 페이지에서는 변수에 대해 더 이상 설명하지 않기 때문에 원래 질문에 대한 완전한 답변을 찾을 수 없습니다.그래서 계속 찾아다녔어요.
아직 코멘트를 할 수 없기 때문에, 여기에 제 결론을 덧붙이겠습니다.이 페이지에 액세스 할 때, 저만이 이것에 흥미를 가지는 것은 아니라고 생각합니다.
>>>myString = 'Hello World'
>>>end = 5
>>>myString[2:end]
'llo'
1부를 남기면 1부를 받을 수중에...
>>>myString[:end]
'Hello'
중간에 : 를 남겨두면 가장 단순한 서브스트링이 됩니다.이것은 5번째 문자입니다(0부터 카운트하기 때문에, 이 경우는 공백입니다).
>>>myString[end]
' '
하드코드된 인덱스를 사용하는 것 자체가 혼란스러울 수 있습니다.
「Python」을 하고 있습니다.slice()
.
string = "my company has 1000$ on profit, but I lost 500$ gambling."
돈이 얼마나 남았는지 알고 싶다면요
일반 솔루션:
final = int(string[15:19]) - int(string[43:46])
print(final)
>>>500
슬라이스 사용:
EARNINGS = slice(15, 19)
LOSSES = slice(43, 46)
final = int(string[EARNINGS]) - int(string[LOSSES])
print(final)
>>>500
슬라이스를 사용하면 읽기 쉬워집니다.
a="Helloo"
print(a[:-1])
상기의 코드에서는, [:-1]은, 처음부터 최대 한도-1까지 인쇄를 선언합니다.
출력:
>>> Hello
주의: 여기서 [:-1]은 [0:-1] 및 [0:len(a)-1]과 같습니다.
a="I Am Siva"
print(a[2:])
출력:
>>> Am Siva
위의 코드에서는 [2:]가 인덱스 2에서 마지막 요소까지 인쇄를 선언합니다.
문자열 인쇄의 최대 제한을 (x)로 설정하면 문자열이 (x-1)까지 인쇄됩니다.또한 목록 또는 문자열의 인덱스는 항상 0부터 시작됩니다.
스트링에서 특정 서브스트링을 찾기 위해 for loop을 사용하는 간단한 솔루션이 있습니다.두 개의 문자열 변수가 있다고 합시다.
main_string = "lullaby"
match_string = "ll"
지정된 일치 문자열이 메인 문자열에 존재하는지 여부를 확인하려면 다음과 같이 하십시오.
match_string_len = len(match_string)
for index,value in enumerate(main_string):
sub_string = main_string[index:match_string_len+index]
if sub_string == match_string:
print("match string found in main string")
언급URL : https://stackoverflow.com/questions/663171/how-do-i-get-a-substring-of-a-string-in-python
'programing' 카테고리의 다른 글
'sorted(list)'와 'list.sort()'의 차이점은 무엇입니까? (0) | 2022.09.04 |
---|---|
익명 클래스에 대한 다중 상속 (0) | 2022.09.04 |
어느 쪽이 더 효율적인가:MySQL 테이블이 여러 개입니까, 아니면 하나의 큰 테이블입니까? (0) | 2022.09.04 |
Java의 계수를 음수로 동작시키는 가장 좋은 방법은? (0) | 2022.09.04 |
Postgres에서 MySQL로 데이터베이스 마이그레이션 (0) | 2022.09.04 |