문자열 하나에 콤마 단위로 문자가 구분 되어 있는걸
두개의 리스트로 나눠야 하는데요
1. string = "a,b,c,d,e,f"
=> ["a,b,c", "d,e,f"]
2. string = "abc,a,b,c,d"
=> ["abc,a", "b,c,d"]
이렇게 두개의 리스트로 나누는 방법 구현하려 하는데
콤마는 몇갠지 모르고 절반으로 나누는 방법이 필요한데
, 단위로 split 한 후 리스트 절반씩 ,넣고 join하는 방법도 생각해봤는데
더 획기적인 함수나 방법 있을까요?
join하는거 아니면 ,개수랑 n번째 , 찾아서 나누는 방법도 있을건데 전자가 더 편할듯
절반이란게 나뉘어진 list의 원소의 len이 동일하다는 의미지? 그냥 string에서 중앙 index 구하고 절반으로 짤라서 list로 만들어 뒷부분에 나오는 원소에는 시작이 ,로 시작할테니까 그 부분만 처리해주고 input이 어느정도 범위인지 몰라서 틀릴 수도 있는데 그냥 어렵게 생각하지 마라
_str = "a,b,c,d,e,f" mid_idx = (len(_str) // 2) _str_list = [_str[:mid_idx], _str[1+mid_idx:]] print(_str_list)
엥 원소의 len이 동일한게 아니라 ,로 나눈 원소들을 절반으로 나눈 뒤에 그걸 다시 join한 그런 형태를 말하는거 아님?
arr = input().split(",") a = arr[0:len(arr)//2] b = arr[len(arr)//2:] res = [",".join(a),",".join(b)] print(res) 이런식
네가 하는 말은 string 변수를 "," 기준으로 split한 이후 list 좌 우 각각 동일하게 배분한 뒤 join으로 다시 string으로 합친다는 의미일까? 질문자가 앞서 제시한 2개의 케이스를 보아 결과 list 좌 우의 원소들의 길이가 서로 동일한데 반면 2번째 케이스에서는 ,가 왼쪽에는 1개 오른쪽에는 2개인것으로 보아 단순히 string 변수를 split(",")한 결과물을 절반으로 나눈다(왼쪽 오른쪽 각각 동일한 갯수)는 의미는 아니라 판단했지.
그러네 네가 제시한 코드도 위 케이스는 정확하게 분류하네
나는 초기 list의 원소가 짝수개면 그냥 절반으로 나누고 홀수개라면 나눴을때 왼쪽 부분의 원소가 짝수개가 되도록 하는 걸로 파악함
내가 잘못이해한거 같다
추가 테케가 필요할듯
컴마의 인덱스만 일단 다 구하고 거기서 원하는 컴마의 인덱스를 구한 다음에 그 인덱스로 주어진 문자열을 슬라이스하면 될거 같은