Python - String Methods

jinatra·2021년 7월 15일
0

String Methods


Formatting Methods

.lower()
.upper()
.title()

.lower() → String을 모두 소문자로 변환
.upper() → String을 모두 대문자로 변환
.title() → String 내 띄어쓰기 기준으로 각 단어의 첫글자는 대문자, 나머지는 소문자로 변환

team = 'arsenal'
player = 'KIERAN TIERNY'

team_name_correction = team.upper()
print(team_name_correction)

player_name_correction = player.title()
print(player_name_correction)

# Output: ARSENAL
# Output: Kieran Tierny

Splitting Strings

.split()

공백(스페이스, 탭, 엔터) 등을 기준으로 String을 분할하여 출력

team = 'Arsenal , the team I support'

team_words = team.split()

print(team_words)

# Output: ['Arsenal', ',', 'the', 'team', 'I', 'support']

Splitting Strings II

.split('a')

문자 a를 기준으로 String을 분할

# 연속된 이름들의 성만 출력하기

player = 'Kieran Tierny,Thomas Partey,Bukayo Saka,Ben White'

player_names = player.split(',')

player_last_names = []
for name in player_names:
  player_last_names.append(name.split()[-1])

print(player_last_names)

# Output: ['Tierny', 'Partey', 'Saka', 'White']

Splitting Strings III

.split('\n')
.split('\t')

.split('\n') → 줄바꿈 기준으로 String을 분할
.split('\t') → 탭간격 기준으로 String을 분할

coyg_lyrics = \
"""it's not me, who wants to win again.
Come on you gunners!"""

coyg_lines = coyg_lyrics.split('\n')

print(coyg_lines)

# Output: ["it's not me, who wants to win again.", 'Come on you gunners!']

Joining Strings

'delimiter'.join(list_you_want_to_join)

'delimeter' → String 사이 간격에 삽입하고자 하는 문구

  • ' ' → 공백
  • 'a' → 문구
  • '\n' → 줄바꿈
my_munequita = ['My', 'Spanish', 'Harlem', 'Mona', 'Lisa']
print(' '.join(my_munequita))
print('love'.join(my_munequita))
print('\n'.join(my_munequita))


# Output: My Spanish Harlem Mona Lisa

# Output: MyloveSpanishloveHarlemloveMonaloveLisa

# Output: My
# Output: Spanish
# Output: Harlem
# Output: Mona
# Output: Lisa

Strip

.strip()
.strip('a')

  • .strip() → String 양쪽에 있는 한 칸 이상의 연속된 공백을 제거
  • .strip('a') → String 양쪽에 있는 문자 a를 제거
my_munequita = "      My Spanish Harlem Mona Lisa      "
print(my_munequita.strip())

# Output: My Spanish Harlem Mona Lisa
coyg = 'Come on you Gunners!!!'
print(coyg.strip('!'))

# Output: Come on you Gunners

Replace

string_name.replace(character_being_replaced, new_character)

String 내의 문자 ,단어 등을 바꾸고자할 때 사용

my_munequita = "My Spanish Harlem Mona Lisa"

korean_doll = my_munequita.replace('Spanish', 'Korean')

print(korean_doll)

# Output: My Korean Harlem Mona Lisa

Find

.find()

String 내의 문자 ,단어 등을 찾고자할 때 사용

  • 대문자와 소문자 구분
  • 동일한 문자가 여러개일 시 가장 가까운 index 출력
  • 단어의 경우 첫 문자의 index 기준
my_munequita = "My Spanish Harlem Mona Lisa"

find_M = my_munequita.find('M')
find_m = my_munequita.find('m')

find_a = my_munequita.find('a')
find_Mona = my_munequita.find('Mona')

print(find_M)
print(find_m)

print(find_a)
print(find_Mona)

# Output: 0
# Output: 16 

# Output: 5
# Output: 18

# 대문자와 소문자 구분
# 동일한 문자가 여러개일 시 가장 가까운 index 출력
# 단어의 경우 첫 문자의 index 기준

Format

.format()

'{index0}, {index1}'.format(value0, value1)

중괄호 { } 안에 포매팅을 지정 후, format 함수의 인자로 value 삽입

a = 2
b = 3

plus = '{} + {} is {}'.format(a, b, a+b)

print(plus)

# Output: 2 + 3 is 5
def team_manager(team, manager):
    return 'Manager of team {} is {}.'.format(team, manager)

print(team_manager('Arsenal', 'Arteta'))

# Output: Manager of team Arsenal is Arteta.

Format II

format 내 키워드 삽입을 통해 표현을 명확히 할 수 있다

# 키워드-변수 연결
def team_manager(team, manager):
    comment = 'Manager of team {team} is {manager}.'.format(team = team_name, manager = manager_name)
    return comment

# 변수 지정
team_name = 'Arsenal'
manager_name = 'Arteta'

# 변수-함수 연결
announcement = team_manager(team_name, manager_name)

print(announcement)

# Output: Manager of team Arsenal is Arteta.




Take Away

.format()의 유용성

.format(), 즉 포매팅을 통해 반복작업을 없앨 수 있다는 것이 효율적인 듯 하다.
단순 변수 지정에서도 활용가능하고, 함수 자체로 지정하여 필요할 때마다 argument만 바꾸어 추출할 수 있다는 것이 획기적이다.
앞으로 써먹을 일이 많은 코드이지 않을까?


.split() 의 활용성

.split() 의 단순 개념만 배웠을 때에는 분할의 의미 외에는 없을 줄 알았는데, 예시로 공부해본 '연속된 이름들의 성 출력' 등을 실습해보고 나니 파괴력을 알 수 있었다.

솔직히 보자마자 바로 코드는 못짰고 짜다가 포기한 다음 모범답안을 하나하나 복기하는 정도였는데, 내가 배웠던 .append()[-1]과 같은 list 내 index 지정이 쓰일 수 있다는 것을 알고 적잖은 충격을 받았다.

시간 될 때마다 이 코드를 다시 보면 좋을 듯 하다.

# 연속된 이름들의 성만 출력하기

player = 'Kieran Tierny,Thomas Partey,Bukayo Saka,Ben White'

player_names = player.split(',')

player_last_names = []
for name in player_names:
  player_last_names.append(name.split()[-1])

print(player_last_names)

# Output: ['Tierny', 'Partey', 'Saka', 'White']
profile
으악

0개의 댓글