
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
1 ≤ str1의 길이 = str2의 길이 ≤ 10
str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.
def solution(str1, str2):
# 두 문자열의 각 문자를 번갈아 가며 결합
result = ''.join(a + b for a, b in zip(str1, str2))
return result
# 테스트 예시
print(solution("aaaaa", "bbbbb")) # "ababababab"
iterable(예: 리스트, 문자열)을 인자로 받아 각 요소를 튜플로 묶어주는 역할zip의 결과는 각 iterable의 첫번째 요소들끼리, 두번째 요소들끼리 묶인 튜플의 시퀀스 str1 = '11'
str2 = '22'
zipped = zip(str1, str2)
print(list(zipped)) # [('1', '2'), ('1', '2')]
iterable의 각 요소를 하나의 문자열로 결합 join을 호출하는 문자열은 각 요소 사이에 삽입되는 구분자 역할 result = ''.join(['12', '12'])
print(result) # 1212
[expression for item in terable if condition]
expression : 각 반복에서 계산될 값. 결과값이 리스트 요소로 추가됨
for item in iterable : 반복문. iterable의 각 요소에 대해 순회
if condigion : 선택사항. 조건문. 조건이 참인 경우에만 expression이 리스트에 추가됨 - ex. creating a List of Squares
squares = []
for i in range(5):
squares.append(i**2)
print(squares) # output: [0, 1, 4, 9, 16]
=> using List Comprehension
squares = [i**2 for i in range(5)]
print(squares) # output: [0, 1, 4, 9, 16]
Loopevens = []
for i in range(10):
if i % 2 == 0:
evens.append(i)
print(evens) # Output: [0, 2, 4, 6, 8]
=> using List Comprehension
evens = [i for i in range(10) if i % 2 == 0]
print(evens) # Output: [0, 2, 4, 6, 8]
def solution(str1, str2):
# zip을 사용해서 str1과 str2의 각 문자를 쌍으로 묶음
zipped = zip(str1, str2)
# 각 쌍의 문자를 결합하여 리스트 생성
combined = [a + b for a, b in zipped]
result = ''.join(combined)
return result
# 테스트 예시
print(solution("aaaaa", "bbbbb")) # "ababababab"
Today, I realized that I haven't been using 'List Comprehension' correctly. I reviewed the syntax and hope to use list comprehensions properly soon.