[python] 1. List

Bik_Kyun·2022년 1월 31일
0
post-thumbnail

1. List란

원소들이 차례대로 나열되어 있는 선형자료구조.
원소들의 순서, 위치가 정해져 있다.
원소들의 중복이 허락된다.
다양한 자료형의 원소들을 저장할 수 있다.
어떤 위치에서도 원소의 삽입 및 삭제가 가능하다.

2. List의 생성

mudo = ["유재석", "박명수", "조세호"]
empty1 = [] # 빈 리스트도 생성이 가능하다

3. List Indexing

리스트에서 특정 한 요소만 선택할 수 있다.
index 값은 0부터 시작한다.

print(mudo[0])

0번 인덱스를 가진 유재석 이 출력된다.
그런데 만약 mudo 리스트에 존재하지 않는 3번 인덱스를 호출한다면?

print(mudo([3])


list의 범위 밖이라고 오류가 발생하며 실행이 중단된다.

4. List Slicing

문자열과 같이 슬라이싱을 통해 부분 요소들을 선택할 수 있다.
인덱스는 0부터 시작하며 마지막 인덱스는 (원하는 마지막 요소의 인덱스 + 1)을 의미한다.

mudo[1:]
 mudo[:1]
 mudo[1:3]

5. insert() 메소드

insert 메소드를 사용하면 리스트의 원하는 인덱스에 원소를 추가 할 수 있다.

mudo.insert(1, "정형돈")

1번 인덱스에 정형돈이 추가된 것을 확인할 수 있다.

6. append() VS extend()

insert 메소드와 같이 리스트의 끝에 원소를 추가하는 메소드이지만 리스트를 추가할 경우 그 결과는 다르다.

  • append() : 리스트의 끝에 새 리스트가 추가되나 합쳐지지 않는다.
  • extend() : 리스트의 끝에 새 리스트가 추가되며 확장된다.
    mudo.append(["하하", "전진"])
    mudo.extend(["하하", "전진"])

7. List 연산자

  • +연산자를 사용해 리스트를 이어 붙일 수 있다.

    mudo  = mudo + ["하하", "전진"]

    extend() 메소드와 같은 결과를 보여준다.

  • 곱하기 연산자를 사용해 횟수만큼 리스트를 이어 붙일 수 있다.

    mudo = mudo*2

8. List에서 원소 제거

  • del
    리스트의 인덱스를 활용해 원소를 제거하는 함수

    del mudo[3]

    del mudo[3:5] # 슬라이싱 가능

  • remove()
    리스트의 원소값을 활용해 원소를 제거하는 메소드
    해당 원소에 중복이 존재하는 경우 첫번째 값만 삭제한다.

    mudo.remove("조세호")

  • slicing 활용

    mudo[2:5] = [] # 2~4번 인덱스를 비운다

  • clear()
    리스트의 원소를 모두 제거한다.

    mudo.clear()

9. List에서 항목 return하기

  • pop() : 리스트의 마지막 항목을 리턴하고 리스트에서 삭제한다.
  • pop(index) : index 위치의 항목을 리턴하고 리스트에서 삭제한다.
    mudo.pop()
    mudo.pop(1)

10. List의 원소 갯수

  • len()
    len(mudo)
    유재석 부터 전진까지 6개의 원소 6이 출력된다.

11. List 정렬

  • sort()
    리스트의 원소를 순서대로 정렬한다.
    정렬 순서는 ASCII 코드 순(숫자 -> 영문 대문자 -> 영문 소문자)
    temp = ['a','abc','ab','a1','A','AB','ABC','A1','1','12']
    temp.sort()

  • reverse()
    리스트의 원소를 역순으로 정렬한다.
    temp = ['a','abc','ab','a1','A','AB','ABC','A1','1','12']
    temp.reverse()

12. List 검색

다시 무한도전 멤버로 돌아와서

  • index() : 리스트 안의 특정 원소의 인덱스를 검색할 수 있다.
    mudo.index("박명수")
    첫번째 박명수의 인덱스인 1이 출력된다.
  • count() : 리스트 안의 특정 원소가 몇 개 있는지 확인할 수 있다.
    mudo.count("박명수")
    박명수 원소가 2개 있으므로 2가 출력된다.

13. List 복사

리스트를 복사하는데는 두가지 방식이 있다.

  • 다른 변수가 한 리스트의 메모리 주소를 공유하는 것.
    a = [1,2,3,4]
    b = a
    메모리 주소를 확인해보면
    id(a)
    id(b)
    같은 리스트를 공유하는 것을 확인할 수 있다.
  • 리스트를 복사해 새로운 리스트를 만드는 것.(slicing 활용, copy()메소드)
a = [1,2,3,4]
b = a[:]
id(a)
id(b)

a리스트와 b리스트는 다른 메모리 주소를 가진 것을 확인 할 수 있다.

a[2] = 5

따라서 a리스트의 값을 변경해도 b리스트에는 영향을 끼치지 않는다.

profile
비진

0개의 댓글