코테 snippet_딕셔너리, 리스트

Leejaegun·2025년 3월 11일

코딩테스트 시리즈

목록 보기
3/49

📌 파이썬 코딩 테스트 필수 개념 정리

📌 딕셔너리(Dictionary) 활용

✅ 딕셔너리 기본 사용법

    # 딕셔너리 생성
    dict_data = {'kor': 0, 'eng': 1, 'math': 2}

    # 값 조회
    print(dict_data['kor'])  # 결과: 0

    # 값 추가 및 변경
    dict_data['math'] = 3  # math의 값 변경
    dict_data['science'] = 2  # science 추가

    # 값 삭제
    del dict_data['kor']
    print(dict_data)  # {'eng': 1, 'math': 3, 'science': 2}

✅ 딕셔너리 키, 값, 아이템 활용

    print(dict_data.keys())   # dict의 key 출력
    print(dict_data.values()) # dict의 value 출력
    print(dict_data.items())  # dict의 key, value 출력

    # 키를 리스트로 변환
    key_list = list(dict_data.keys())
    print(key_list)  # ['eng', 'math', 'science']

✅ 딕셔너리 순회 및 검색

    # 키, 값 개별 접근
    for key, value in dict_data.items():
        print(f"{key}: {value}")

    # 특정 키 존재 여부 확인
    print('math' in dict_data)  # 결과: True

🔹 💡 딕셔너리는 (키, 값) 을 쌍으로 가진 자료구조이다.

📌 문자열 처리 및 인덱싱

    sentence = 'Hello Python, This text is a sample.'

    # 특정 단어 포함 여부
    print('is' in sentence)  # 결과: True

    # 특정 문자열 위치 찾기
    print(sentence.index('This'))  # 결과: 문자열 내 'This'가 시작되는 위치 반환
    print(sentence.split().index('This'))  # 단어 기준으로 나눈 리스트에서 'This'의 위치 반환

    # 문자열 슬라이싱
    print(sentence[-10:])  # 뒤에서 10번째 문자부터 끝까지
    print(sentence[::-1])  # 문자열 뒤집기

✅ 문자열 변환 메소드

    str_original = ' , Hello_pyThon_cOde_sample , '

    # 소문자로 변환
    print(str_original.lower())  

    # 대문자로 변환
    print(str_original.upper())  

    # 앞뒤 공백 및 특정 문자 제거
    print(str_original.strip(' ,'))  

✅ 문자열 조인 및 분할

    words = ['hello', 'python', 'code', 'sample']

    # 문자열 합치기
    str1 = '_'.join(words)  
    print(str1)  # 'hello_python_code_sample'

    str2 = '\n'.join(words)  
    print(str2)  # 'hello' (줄바꿈) 'python' (줄바꿈) ...

📌 리스트(List) 활용

✅ 리스트 생성 및 요소 추가

    a_list = [10, 29, 33]
    print(a_list)  # [10, 29, 33]

    # 요소 추가
    a_list.append(44)
    print(a_list)  # [10, 29, 33, 44]

✅ 리스트 복사 및 참조

    b_list = a_list  # 같은 객체를 참조
    b_list.append(55)

    print(b_list)  # [10, 29, 33, 44, 55]
    print(a_list)  # [10, 29, 33, 44, 55] (같은 객체이므로 변경됨)

append() vs extend()

    a_list.append([6,7,8])  # 리스트 안에 리스트가 들어감
    b_list.extend([6,7,8])  # 개별 요소로 추가됨

    print(a_list)  # [10, 29, 33, 44, 55, [6,7,8]]
    print(b_list)  # [10, 29, 33, 44, 55, 6, 7, 8]

✅ 리스트 순회

    for item in a_list:
        print(item, end=' ')  # 요소 출력

    for index, item in enumerate(b_list, 1):  # 인덱스를 1부터 시작
        print(f"{index}. {item}")

✅ 리스트 반복 및 변형

    a_list *= 2  # 리스트 반복
    print(a_list)  

    # 모든 요소에 2를 곱하기
    for i in range(len(a_list)):
        a_list[i] *= 2
    print(a_list)

📌 리스트 정렬 및 변환

✅ 리스트 정렬

    a_list = [3, 1, 4, 1, 5, 9]

    # 정렬 (원본 변경 X)
    sorted_list = sorted(a_list)
    print(sorted_list)

    # 거꾸로 정렬 (원본 변경 X)
    reversed_list = list(reversed(a_list))
    print(reversed_list)

    # 최대, 최소값
    print(f"max = {max(a_list)}, min = {min(a_list)}")

    # 리스트 합계 및 평균
    print(f"sum = {sum(a_list)}, avg = {sum(a_list) / len(a_list):.3f}")

✅ 리스트 요소 추가 및 삭제

    a_list = [1, 2, 3, 4, 5]

    # 모든 요소 삭제
    a_list.clear()
    print(a_list)  # []

    # 요소 추가
    a_list.append(10)
    print(a_list)  # [10]

    # 여러 요소 추가
    a_list.extend([30, 20, 30])
    print(a_list)  # [10, 30, 20, 30]

    # 특정 위치에 요소 삽입
    a_list.insert(0, 0)  # 첫 번째 위치에 0 삽입
    a_list.insert(100, 50)  # 100번째 인덱스가 없으므로 마지막에 추가됨
    print(a_list)  # [0, 10, 30, 20, 30, 50]

    # 요소 삭제
    a_list.remove(0)  # 첫 번째 0 제거
    print(a_list)

    # 특정 요소 개수 및 위치 찾기
    print(f"10은 {a_list.count(10)}회 출현. {a_list.index(10)}번째 방에 있음.")

    # 정렬 및 뒤집기
    a_list.sort()  # 오름차순 정렬
    print(a_list)

    a_list.reverse()  # 내림차순 정렬
    print(a_list)

📌 정렬 알고리즘 비교 (sort() vs sorted())

함수원본 변경반환 값
list.sort()ONone
sorted(list)X정렬된 리스트
    numbers = [5, 2, 9, 1]

    # 원본 리스트 유지, 정렬된 리스트 반환
    sorted_numbers = sorted(numbers)
    print(sorted_numbers)  # [1, 2, 5, 9]

    # 원본 리스트 자체를 정렬
    numbers.sort()
    print(numbers)  # [1, 2, 5, 9]

📌 흐름 제어 (continue, pass, break)

continue

for i in range(5):
    if i == 3:
        continue  # 3일 때 아래 코드 스킵, 다음 반복으로
    print(f"continue: {i}")

출력:

continue: 0
continue: 1
continue: 2
continue: 4

✅ pass

for i in range(5):
    if i == 3:
        pass  # 3일 때 아무것도 안 하고 계속 진행
    print(f"pass: {i}")

출력:

pass: 0
pass: 1
pass: 2
pass: 3
pass: 4

✅ break

for i in range(5):
    if i == 3:
        break  # 3일 때 반복문 완전 종료
    print(f"break: {i}")

출력:

break: 0
break: 1
break: 2

차이점 요약

키워드동작사용 목적
continue현재 반복 스킵, 다음 반복 진행특정 조건에서 반복 건너뛰기
pass아무것도 안 함, 그냥 통과빈 블록 채우기 / 임시 대체
break반복문 완전 종료조건 충족 시 반복 끝내기

계속 추가할 것.. to..be..continue

profile
Lee_AA

0개의 댓글