[문제 설명]
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
[제한 사항]
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.입출력 예 s return try hello world TrY HeLlO WoRlD 입출력 예 설명 try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 TrY, HeLlO, WoRlD입니다. 따라서 TrY HeLlO WoRlD 를 리턴합니다.
def solution(s):
words_list = s.split()
new_list = []
for word in words_list:
new_words = ""
for i in range(len(word)):
new_words += word[i].upper() if i%2 == 0 else word[i].lower()
new_list.append(new_words)
return " ".join(new_list)
단어별, 철자별로 반복할 때,
빈 스트링에 철자하나씩 넣어주고
한 단어 끝나면 빈 리스트에 단어 넣어주기
받은 문자열을 단어별(스페이스 기준)으로 split 해서 list에 넣어주기
words_list = s.split(' ')
문자열을 새로 만들어야 하니까 빈 리스트 생성
new_list = []
단어 리스트에 있는 단어들 반복할 때 그 단어 길이 만큼 반복문
for word in words_list:
for i in range(len(word)):
3-1 단어가 반복할 때 맞춰서 빈 string이 채워지는 거니까 여기에 맞게 빈스트링 미리 만들기
new_words = ""
new_words += word[i].upper() if i%2 == 0 else word[i].lower()
new_list.append(new_words)
<br><br><br>
### 참고
https://www.geeksforgeeks.org/python-split-string-into-list-of-characters/
``` py
def split(word):
return list(word)
def split(word):
return [char for char in word]
2차원 리스트 표현식으로
>>> a = [[0 for j in range(2)] for i in range(3)]
>>> a
[[0, 0], [0, 0], [0, 0]]
' + '.join(list)
def toWeirdCase(s):
# 함수를 완성하세요
return ' '.join([''.join([c.upper() if i % 2 == 0 else c.lower() for i, c in enumerate(w)]) for w in s.split(' ')])
def toWeirdCase(s):
return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))
한줄로.
반복문 사용 시 몇 번째 반복문인지 확인이 필요할 때 사용
인덱스 번호와 컬렉션의 원소를 tuple형태로 반환>> t = [1, 5, 7, 33, 39, 52] >> for p in enumerate(t): ... print(p) ... (0, 1) (1, 5) (2, 7) (3, 33) (4, 39) (5, 52)
변수 두개 주면 각각 활용 가능
for i, v in enumerate(t):