Python 에서 문자열 의 하위 문자열 을 바 꾸 는 예제

작업 이 있 으 면 문자열 을 지정 하고 사전 을 조회 하여 주어진 문자 의 변 수 를 바 꿉 니 다.일반적인 방법 을 사용 하면:

>>> "This is a %(var)s" % {"var":"dog"}
'This is a dog'
>>>
사실 string.Template 클래스 를 사용 하여 위의 교 체 를 실현 할 수 있 습 니 다.

>>> from string import Template
>>> words = Template("This is $var")
>>> print(words.substitute({"var": "dog"})) #           
This is dog
>>> print(words.substitute(var="dog"))   #           
This is dog
>>>
템 플 릿 인 스 턴 스 를 만 들 때 문자열 형식 에 서 는$대신 달러 문자 두 개 를 사용 할 수 있 고${}으로 변 수 를 확대 할 수 있 습 니 다.그러면 변수 뒤에 다른 문자 나 숫자 를 연결 할 수 있 습 니 다.이 사용 방식 은 Shell 이나 Perl 의 언어 와 같 습 니 다.다음은 letter 템 플 릿 으로 예 를 들 어 보 겠 습 니 다.

>>> from string import Template
>>> letter = """Dear $customer,
... I hope you are having a great time!
... If you do not find Room $room to your satisfaction, let us know.
... Please accept this $$5 coupon.
...     Sincerely,
...     $manager,
...     ${name}Inn"""
>>> template = Template(letter)
>>> letter_dict = {"name": "Sleepy", "customer": "Fred Smith", "manager": "Tom Smith", "room": 308}
>>> print(template.substitute(letter_dict))
Dear Fred Smith,
I hope you are having a great time!
If you do not find Room 308 to your satisfaction, let us know.
Please accept this $5 coupon.
    Sincerely,
    Tom Smith,
    SleepyInn
>>>
때때로 substitute 에 사전 을 매개 변수 로 준비 하기 위해 서 가장 간단 한 방법 은 로 컬 변 수 를 설정 한 다음 에 이 변 수 를 local()에 전달 하 는 것 입 니 다.(이 함수 가 사전 을 만 듭 니 다.사전 의 key 는 로 컬 변수 이 고 로 컬 변수의 값 은 key 를 통 해 접근 합 니 다)

>>> locals()   #     ,      
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
>>> name = "Alice" #       name 
>>> age = 18   #       age
>>> locals()   #    locals()       name, age    
{'name': 'Alice', '__builtins__': <module '__builtin__' (built-in)>, 'age': 18, '__package__': None, '__name__': '__mai
__', '__doc__': None}
>>> locals()["name"] #    name    
'Alice'
>>> locals()["age"] #    age    
18
>>>
위의 예 가 있 으 면 예 를 들 어 보 자.

>>> from string import Template
>>> msg = Template("The square of $number is $square")
>>> for number in range(10):
...  square = number * number
...  print msg.substitute(locals())
...
The square of 0 is 0
The square of 1 is 1
The square of 2 is 4
The square of 3 is 9
또 다른 방법 은 사전 이 아 닌 키워드 매개 변수 문법 을 사용 하여 substitute 에 값 을 직접 전달 하 는 것 이다.

>>> from string import Template
>>> msg = Template("The square of $number is $square")
>>> for i in range(4):
...  print msg.substitute(number=i, square=i*i)
...
The square of 0 is 0
The square of 1 is 1
The square of 2 is 4
The square of 3 is 9
>>>
심지어 사전 과 키 워드 를 동시에 전달 할 수 있다.

>>> from string import Template
>>> msg = Template("The square of $number is $square")
>>> for number in range(4):
...  print msg.substitute(locals(), square=number*number)
...
The square of 0 is 0
The square of 1 is 1
The square of 2 is 4
The square of 3 is 9
>>>
사전 의 항목 과 키워드 매개 변수 가 전달 하 는 값 이 충돌 하 는 것 을 방지 하기 위해 키워드 매개 변수 가 우선 합 니 다.예 를 들 어:

>>> from string import Template
>>> msg = Template("It is $adj $msg")
>>> adj = "interesting"
>>> print(msg.substitute(locals(), msg="message"))
It is interesting message
 
파 이 썬 에서 문자열 을 바 꾸 는 하위 문자열 을 구현 하 는 이 예제 가 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 많은 응원 바 랍 니 다.

좋은 웹페이지 즐겨찾기