본문 바로가기
Python/개념익히기

리스트

by ADELA_J 2023. 3. 27.

* list, 리스트 : 대괄호 내부에 여러 종류의 자료형으로 요소(element)가 나열되어 있는(구성되어 있는)

   ex) [1, 2, 3, 4] ["안", "녕", "하", "세", "요"] [ 273, 12, "문자", True]

   ▶ 문자에서 사용된 것 처럼 요소들의 각 주소를 index, 인덱스라고 부릅니다. 

   ▶ 요소 변경을 원하면 변경을 원하는 인덱스 번호를 기입하고 요소 적기 ex. list_a[0]="이거" = "재할당"이라고함

    A. 대괄호 안에 음수를 넣어 뒤에서 부터 요소 선택 가능(문자인덱스와 동일)

    B. 접근 연산자를 이중으로 사용 가능(문자열에서만)

    C. 리스트 안에 리스트도 사용 가능

     ※IndexError : 리스트의 길이를 넘는 인덱스로 요소에 접근하려고 할때 발생하는 에러

 

    D. 문자열은 리스트로 바꿔서 가능.

list_ex = [88,11,"이것입니다", True]
print(list_ex)
list_ex[3] = "변경된 요소"
print(list_ex)

#뒤에서부터 요소 선택
print("A번 예시----")
print("list_ex[-1]는", list_ex[-1], "list_ex[-2]는", list_ex[-2])

#이중으로 사용
print("B번 예시---")
print("list_ex[2]는 \'", list_ex[2],
"\'index[2]에서 가져온 문자열에서 3번째 글자는 list_ex[2][2] = ", list_ex[2][2])


#리스트안에 리스트
print("C번 예시---")
list_in=[[1,2,3], [4,5,6], [2,5,67]]
print(list_in)

 

  D. 리스트 연산하기 

     1. + : 리스트와 리스트를 '연결'하는 연산자. 문자열에 적용되는거랑 똑같

     2. * : 리스트의 자료를 반복가능하게. 문자열에 적용되는거랑 똑같22

     3. len() : 리스트의 요소 개수를 구해줌 / 문자열에서는 글자 수를 세어줬었음

        len(str.encode('utf-8')) => 한글 바이트 수 반환해주는거

  E. 리스트 요소에 추가하고 제거하고 

     1. 추가하기

         a. 리스트명.append(요소) : 맨 뒤에 새로운 요소를 추가. 리스트를 넣으면 리스트 하나가 요소가 되어서 추가됨

         b. 리스트명.insert(위치, 요소) : 내가 원하는 곳에 요소를 추가 

         c. 리스트명.extend([요소,요소,요소]) : 여러개의 요소를 한번에 추가할때 = append를 여러번 진행하는 것과 같음

            ▶ list_1 + list_2 = list_1.extend(list_2) : 결과 값은 같지만 다름!

               : 1+2 하는건 원본에 어떠한 영향도 주지 않는 비파괴적. 그냥 합쳐지기만 하는거 

               : extend()는 원본에 영향을 줘서 바꿔서 다시 저장하는 파괴적.

                 ▷ 원본에 어떠한 영향을 주지 않고 하는 비파괴적은 편리하지만 용량이 매우 커질 수 있음 

 

>>> 추가하기 추가

 

l_1 = ["아","야","어","여"]
l_2 = ["가","나","다","라"]

print(l_1)
print(l_2)
print("l_1 + l_2 는", l_1+l_2)
print("l_1 * 3 는" , l_1*3)
print("len(l_2) =", len(l_2))

#리스트 뒤에 요소 추가
print("--리스트 뒤에 요소 추가하기--")
l_1.append("요")
print(l_1)
print()

#리스트 중간에 요소 추가하기
print("--리스트 중간에 요소 추가하기--")
l_2.insert(0,"마")
print(l_2)
print()

#extend
print("--extend쓰기--")
l_1.extend(["으","이","오"])
print(l_1)

 

 

     2. 제거하기

        a. 인덱스로 제거하기

          a-1. del 리스트명[인덱스]  : delect...범위를 지정해 한꺼번에 제거 가능 /

                 한쪽을 입력하지 않으면 전부 제거 가능 ex. del  list [:3]

 

          a-2. 리스트명.pop(인덱스)    : 매개변수 입력 안하면 맨 마지막 요소 제거

 

※ 리스트 슬라이싱 : 리스트 [시작_인덱스:끝_인덱스:단계] , 단계를 사용하면 인덱스를 건너뛰며 요소 가져옴

ex. [0:5:2] 2칸씩 뛰어서 0자리부터 4자리까지의 요소를 가져옴

 

         b. 값으로 제거하기

          b-1. 리스트.remove(값) :  내부에 여러개 있어도 가장 먼저 발견되는 하나만 제거. 중복된거 제거하려면 반복문

          b-2. 리스트.clear() : 모두 제거. 안에 내용만 비울뿐 리스트 자체가 사라지는 것은 아님

 

     3. 리스트.sort() : 리스트 요소 정렬. 기본은 오름차순, 리스트.sort(revers=True) 내림차순 정렬

     4. 값 in 리스트 : 리스트 내부에 있는지 확인. True or False로 출력됨

        a. 값 not in 리스트 : 리스트 내부에 해당 값이 없는지 확인하는, 반대로 작동됨 

 

 

append는 return 값을 반환해주지 않고 값을 리스트에 더해주기만 함.

>> 반환값이 없음. 

 

 

 

 

index() - 리스트에서 특정 값의 인덱스 반환

count() -  리스트에서 특정 값의 개수 반환

 

 

'is' 는 객체(코드) 비교 >> 같은 리스트인지 is 로 알아볼 수 있음.

'Python > 개념익히기' 카테고리의 다른 글

딕셔너리  (0) 2023.03.28
for 반복문  (0) 2023.03.27
0324 수업  (0) 2023.03.24
불 자료형과 if 조건문  (0) 2023.03.22
숫자와 문자열  (0) 2023.03.21