ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 리스트(List)
    Language/자료구조 2024. 5. 21. 09:29

    1. 리스트 선언

    • '[ ]'를 이용해서 선언하고 , 데이터구분은 ','를 이용한다.
    • 데이터하나하나를 아이템(요소)라고 한다,
    • 리스트 안에는 숫자,문자,논리형등의 기본 데이터와 또 다른 컨테이너 자료형 데이터를 저장할 수 있다.

     

    2. 인덱스

    리스트의 아이템은 인덱스를 이용해서 조회가능하다.

    students = ['홍길동','박찬호','이용규','박승철','김지은']
    print('students: {}'.format(students))
    print(students[0])
    print(type(students))
    print(type(students[0]))
    
    
    >>>
    students: ['홍길동', '박찬호', '이용규', '박승철', '김지은']
    홍길동
    <class 'list'>
    <class 'str'>

     

    3. 리스트 길이

    students = ['홍길동','박찬호','이용규','박승철','김지은']
    sLength = len(students)
    print(sLength)
    
    >>>
    5

     

    4. 아이템 추가

    1) append

      : append() 함수를 이용하면, 마지막 인덱스에 아이템을 추가할 수 있다.

    students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
    
    print('students : {}'.format(students))
    print('students : {}'.format(len(students)))
    
    students.append('강호동')
    print('students : {}'.format(students))
    print('students : {}'.format(len(students)))
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '박승철', '김지은']
    students : 5
    students : ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']
    students : 6

     

    2) insert

      : insert() 함수를 잉하면, 특정위치(인덱스)에 아이템을 추가할 수 있다.

    students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
    
    students.insert(2,'강호동')
    print('students : {}'.format(students))
    print('students : {}'.format(len(students)))

     

    ex) 입력받은 숫자 오름차순 정렬

    numbers = [1,3,6,11,45,54,62,74,85]
    inputNumber = int(input('숫자입력 : '))
    
    insertIdx = 0
    
    for idx,number in enumerate(numbers):
        print(idx,number)
    
        if  inputNumber < number:
        # if insertIdx == 0 and inputNumber < number:
            insertIdx = idx
    
    numbers.insert(insertIdx, inputNumber)
    print('numbers : {}'.format(numbers))

     

    5. 아이템 삭제

     1)  pop

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

    students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
    
    students.pop()
    print('students : {}'.format(students))
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '박승철']

      

      pop(n) :  n인덱스에 해당하는 아이템 삭제

    students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
    
    rValue = students.pop(1) # pop()은 지워진 값의 index를 반환
    print('students : {}'.format(students))
    print('삭제한 아이템 : {}'.format(rValue))
    
    >>>
    students : ['홍길동', '이용규', '박승철', '김지은']
    삭제한 아이템 : 박찬호

     

     2) remove

      : remove() 함수를 이용하면, 특정 아이템을 삭제할 수 있다. 

    students = ['홍길동', '박찬호', '이용규','강호동', '박승철', '김지은', '강호동']
    
    print('students : {}'.format(students))
    students.remove('강호동')
    print('students : {}'.format(students))
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
    students : ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']

       

    remove는 동일한 이름이여도 앞에 있는 한개의 아이템만 삭제가능하다.

    만약 삭제하려는 데이터가 2개이상이면 while문 사용

    students = ['홍길동', '박찬호', '이용규','강호동', '박승철', '김지은', '강호동']
    
    print('강호동' in students)
    print('students : {}'.format(students))
    
    while '강호동' in students:
        students.remove('강호동')
    print('students : {}'.format(students))
    
    >>>
    True
    students : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
    students : ['홍길동', '박찬호', '이용규', '박승철', '김지은']

     

    3) del 키워드

    students = ['홍길동', '박찬호', '이용규','강호동', '박승철', '김지은', '강호동']
    print('students : {}'.format(students))
    
    del students[1]
    print('students : {}'.format(students))
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
    students : ['홍길동', '이용규', '강호동', '박승철', '김지은', '강호동']

     

    슬라이싱 사용가능

    students = ['홍길동', '박찬호', '이용규','강호동', '박승철', '김지은', '강호동']
    print('students : {}'.format(students))
    
    del students[1:4]
    print('students : {}'.format(students))
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
    students : ['홍길동', '박승철', '김지은', '강호동']

    pop vs remove vs del

    remove : 지우고자하는 인덱스가 아닌, 값을 입력

    pop,del : 지우고자하는 리스트의 인덱스를 받아서 지우는 방식

                     pop()은 지워진 값의 index를 반환, 리스트의 범위를 지정하여 삭제못함

                     del 은 명령어로 반환값x, 리스트의 범위 지정가능 (*속도가 가장빠름)

    6. 리스트 연결(확장)

    1)  extend

      : extend() 함수를 이용하면, 리스트에 또 다른리스트를 연결 할 수 있다.

    group1 = ['홍길동','박찬호', '이용규']
    group2 = ['강호동', '박승철', '김지은']
    
    print(f'group1 : {group1} ')
    print(f'group2 : {group2} ')
    
    group1.extend(group2)
    
    print(f'group1 : {group1} ')
    print(f'group2 : {group2} ')
    
    >>>
    group1 : ['홍길동', '박찬호', '이용규'] 
    group2 : ['강호동', '박승철', '김지은'] 
    group1 : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은'] 
    group2 : ['강호동', '박승철', '김지은']

     

    2) 덧셈연산자

     * extend vs 덧셈연산자 

      : extend :  a + b = a    /  덧셈연산자 : a + b = c

    group1 = ['홍길동','박찬호', '이용규']
    group2 = ['강호동', '박승철', '김지은']
    
    print(f'group1 : {group1} ')
    print(f'group2 : {group2} ')
    
    # group1.extend(group2)
    result = group1 + group2
    print(f'result : {result} ')
    print(f'group1 : {group1} ')
    print(f'group2 : {group2} ')
    
    >>>
    group1 : ['홍길동', '박찬호', '이용규'] 
    group2 : ['강호동', '박승철', '김지은'] 
    result : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은'] 
    group1 : ['홍길동', '박찬호', '이용규'] 
    group2 : ['강호동', '박승철', '김지은']

     

    ex) 리스트1과 리스트2 중복값제외하고 합치기

    myFavoritNumbers = [1,3,5,6,7]
    friendFavoritNumbers = [2,3,5,8,10]
    
    print(f'myFavoritNumbers: {myFavoritNumbers}')
    print(f'friendFavoritNumbers: {friendFavoritNumbers}')
    
    addList = myFavoritNumbers + friendFavoritNumbers
    print(f'addList: {addList}')
    
    result = []
    for number in addList:
        if number not in result:
            result.append(number)
            
    print(f'result: {result}')       
    
    
    >>>
    myFavoritNumbers: [1, 3, 5, 6, 7]
    friendFavoritNumbers: [2, 3, 5, 8, 10]
    addList: [1, 3, 5, 6, 7, 2, 3, 5, 8, 10]
    result: [1, 3, 5, 6, 7, 2, 8, 10]

     

    7. 아이템 정렬

    1) sort

    sort(reverse=False) : 오름차순 (기본값 설정되어 생략해도됨)

    sort(reverse=True) : 내림차순

     

    students = ['홍길동', '박찬호', '이용규','강호동', '박승철', '김지은']
    print(f'students : {students}')
    # 오름차순
    students.sort(reverse=False)
    print(f'students : {students}')
    # 내림차순
    students.sort(reverse=True)
    print(f'students : {students}')
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
    students : ['강호동', '김지은', '박승철', '박찬호', '이용규', '홍길동']
    students : ['홍길동', '이용규', '박찬호', '박승철', '김지은', '강호동']

     

    2) reverse 

    : reverse() 함수를 이용하면 아이템순서를 뒤집을 수 있다. 

    students = ['홍길동', '박찬호', '이용규','강호동', '박승철', '김지은']
    print(f'students : {students}')
    students.reverse()
    print(f'students : {students}')
    
    >>>
    students : ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
    students : ['김지은', '박승철', '강호동', '이용규', '박찬호', '홍길동']

    'Language > 자료구조' 카테고리의 다른 글

    리스트(List) > 그 외 기능  (0) 2024.05.23
    리스트(List) > 슬라이싱  (0) 2024.05.23
    [Python] enumerate() 함수  (0) 2024.05.22
    [Python] 리스트(List) > 리스트와 반복문  (0) 2024.05.21
    자료구조  (0) 2024.05.20
Designed by Tistory.