자료구조_2

YJ·2023년 3월 18일

▷ 오늘 학습 내용: 자료구조 강의(3~4)

08_리스트에 아이템 추가

append() 함수 → 마지막 인덱스에 아이템 추가

09_리스트의 특정 위치에 아이템 추가

insert() 함수 → 특정 위치(인덱스)에 아이템 추가

   # 내림차순으로 정렬되어 있는 숫자들에 사용자가 입력한 정수를 추가하며,
   # 추가 후에도 내림차순 정렬을 유지하는 프로그램 만들기

    numbers = [85, 74, 62, 54, 45, 11, 6, 3, 1]
    inputN = int(input('숫자 입력: '))

    insertIdx = 0
    
    for idx, number in enumerate(numbers):
    
        if insertIdx == 0 and inputN > number:
            insertIdx = idx
            
    numbers.insert(insertIdx, inputN)
    print('numbers: {}'.format(numbers))

10_리스트의 아이템 삭제

pop() 함수 → 마지막 인덱스에 해당하는 아이템을 삭제할 수 있다.
pop(n) 함수 → 인덱스 n에 해당하는 아이템을 삭제할 수 있다.

    students = ['홍길동', '박찬호', '박승철']
    value = students.pop()
    print(value)

    # pop() 함수를 사용해서 마지막 아이템 '박승철' 삭제할 수 있고,
    # value라는 변수에 담아서 따로 출력 가능

11_리스트의 특정 아이템 삭제

remove() 함수 → 특정 아이템 삭제(한 개의 아이템만 삭제 가능)
삭제하려는 데이터가 2개 이상이면 while문 이용하기

    students = ['홍길동', '이지은', '김철수', '홍길동']
    
    while '홍길동' in students:  
        students.remove('홍길동')

    #참고: '홍길동' in students → print 하면 True로 나옴

12_리스트 연결

extend() 함수 → 리스트에 또 다른 리스트를 연결(확장)
덧셈 연산자를 이용해서 리스트를 연결할 수도 있다.

	#list1과 list2를 합치되 번호가 중복되지 않게
    
    list1 = [1,3,5,7,6]
    list2 = [2,3,5,8,10]    
    addList = list1 + list2
    
    result = []
    for number in addList:
        if number not in result:
            result.append(number)
            
    print('result: {}'.format(result))

13_리스트 아이템 정렬

sort() 함수 → 아이템 정렬(오름차순)
sort(reverse=True) → 아이템 정렬(내림차순)

14_리스트 아이템 순서 뒤집기

reverse() 함수 → 아이템 순서 뒤집기
정렬 아니고 앞뒤 순서만 바뀜

15_리스트 슬라이싱

[n:m] 이용하여 리스트에서 원하는 아이템만 뽑아낼 수 있다.(문자열도 가능)

  • 슬라이싱 단계 설정
    numbers = [2, 50, 0.12, 1, 9, 7, 17, 35, 100, 3.14]
    
    print(numbers[2:4])  # [0.12, 1]
    print(numbers[:4])  # [2, 50, 0.12, 1]
    print(numbers[2:])  # [0.12, 1, 9, 7, 17, 35, 100, 3.14]
    print(numbers[2:-2])  # [0.12, 1, 9, 7, 17, 35]
    print(numbers[-5:-2])  # [7, 17, 35]
    print(numbers[2:-2:2])  # [0.12, 9, 17]
    print(numbers[:-2:2])  # [2, 0.12, 9, 17]
    print(numbers[::2])  # [2, 0.12, 9, 17, 100]
  • 슬라이싱을 이용한 아이템 변경
    students = ['김가영', '이지은', '김철수', '홍길동', '임수빈']

    students[1:3] = ['이나영', '김민경']
    # ['김가영', '이나영', '김민경', '홍길동', '임수빈'] 
    students[1:3] = ['이나영']
    # ['김가영', '이나영', '홍길동', '임수빈']
    students[1:3] = ['이나영', '신나리', '김민경']
    # ['김가영', '이나영', '신나리', '김민경', '홍길동', '임수빈']
  • slice() 함수
    students = ['홍길동', '박찬호', '이지은', '임수빈']
    print(students[slice(2,4)])  # ['이지은', '임수빈']

16_리스트 나머지 기능

리스트 곱셈 연산 → 아이템 반복

아이템 위치 찾기 → index(item)함수

  students = ['홍길동', '강호동', '박찬호', '이지은', '강호동']

  searchIdx = students.index('강호동')
  print(searchIndx)  # 제일 앞에 있는 아이템의 인덱스 1이 출력됨

  searchIdx = students.index('강호동', 2,5)
  # 인덱스 범위를 정해줄 수 있음 → 마지막 인덱스 4 출력됨

특정 아이템의 개수 알아내기 → count()함수
특정 아이템 삭제 → del 키워드

  students = ['홍길동', '강호동', '박찬호', '이지은', '강호동']

  searchCnt = students.count('강호동')
  print(searchCnt)  #2

  del students[2]  #인덱스 2에 해당하는 아이템 '박찬호' 삭제됨
  del students[1:3]  #인덱스 범위 지정하여 삭제 가능함

▷ 내일 학습 계획: 자료구조 강의(5~6)

[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]

0개의 댓글