본문 바로가기
Python

문자열 섞기/ Python/ 3가지 방법 - 설명

by YUNZEE 2024. 9. 18.
728x90

기본
def solution(str1, str2):
    answer = ''
    for i in range(len(str1)):
        answer+=str1[i]+str2[i]
    return answer

str1과 str2의 문자열 길이가 동일하기 때문에 len을 활용해 쉽게 접근할 수 있는 풀이방법

zip(a, b)

두 개의 리스트를 하나로 묶어줌(zip)

def solution(str1, str2):
    answer=''
    for s1,s2 in zip(str1,str2):
        answer+=s1+s2
    return answer

저는 여기서 갑자기 dict이 생각났습니다. dict과 zip의 차이점은 뭘까요?

 

먼저 dict이란?

키-값 쌍을 저장하는 데이터 구조

각 키는 유일하며, 키를 사용하여 해당 값을 빠르게 찾을 수 있음

딕셔너리는 중괄호 {}를 사용하여 정의되며, 키-값 쌍은 key: value 형식으로 저장됨

# 딕셔너리 정의
my_dict = {'a': 1, 'b': 2, 'c': 3}

# 키를 사용하여 값에 접근
print(my_dict['a'])  # 결과: 1

이처럼 zip()은 여러 시퀀스를 묶는 데 유용하고, dict()는 이 묶인 결과를 딕셔너리로 변환할 때 유용하게 사용할 수 있습니다!

 

또한, 두 개를 한 번에 사용할 수도 있습니다.

# 두 개의 리스트
keys = ['a', 'b', 'c']
values = [1, 2, 3]

# zip()으로 묶은 뒤 dict()로 딕셔너리 생성
my_dict = dict(zip(keys, values))

print(my_dict)  # 결과: {'a': 1, 'b': 2, 'c': 3}
구분자. join(리스트)
def solution(str1, str2):
    answer = ''.join([str1[i] + str2[i] for i in range(len(str1))])
    return answer

아주 쉬운. join활용 예시

a = ['a', 'b', 'c']

# 리스트를 문자열로 합치기
result1 = "_".join(a)
print(result1) #결과 a_b_c

https://school.programmers.co.kr/learn/courses/30/lessons/181941 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

위의 문제도 join을 활용해서 아주 쉽게 해결할 수 있습니다!

728x90