Python/Data Type

[Python] Sequence Data Type - list

데이터 세상 2022. 4. 25. 14:03

Sequence Data Type

  • memership 연산: in 키워드 사용
  • size 함수: len(seq)
  • slicing 속성: seq[:-1]
  • iterability: 반복문에 있는 데이터를 순회할 수 있음
  • 문자열, 튜플, 리스트, 바이트 배열, 바이트 등 5개의 내장 시퀀스 타입이 있음

list

  • 대괄호 []을 이용하여 선언
  • 모든 자료형을 담을 수 있음
  • 삽입, 수정, 삭제 등이 자유로움
  • 순서가 있는 자료형으로 인덱싱 슬라이싱 가능
list_1 = [1, 2, 'character', ['two', 'three'], ('tuple', 'inlist')]

list_1[3]
>> ['two', 'three']

list_1[4][0]
>> 'tuple'

인덱싱

  • 가장 바깥 괄호부터 접근
  • 첫번째 위치부터 시작하여 인덱스 계산
list_1 = [[[1,2,3], [4], [5, [6,7,8,9]]], [10,11,[12,13,[14]]]]
list_1[1][2][2]
>> [14]

list_1[1][:3]
>> [2, 4, 6]

list_1[0][:2]
>> [[1, 2, 3], [4]]

리스트 연산

  • 덧셈: 두 리스트를 연결하여 하나의 리스트로 만듦
  • 곱셈: 리스트를 반복하여 연결하여 하나의 리스트로 만듦
list_1 = ['a', 'b', 'c']
list_2 = ['가', '나', '다']

list_1 + list_2
>> ['a', 'b', 'c', '가', '나', '다']

list_2 * 3
>> ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

리스트 method

  • 삽입: append(), extend(), insert()
    • A.append(x): 리스트 A 끝에 항목 x를 추가, A[len(A):] = [x]
    • A.extend(x): 반복 가능한 모든 항목 c를 리스트 A에 추가, A+=x
    • insert(i, x): 인덱스 위치 i에 항목 x를 삽입
people = ["버피", "페이스"]
people.append("자일스")
people
>> ["버피", "페이스", "자일스"]

people[len(people):] = ["젠더"]
people
>> ["버피", "페이스", "자일스", "젠더"]

people = ["버피", "페이스"]
people.extend("자일스")
people
>> ["버피", "페이스", "자", "일", "스"]

people += "윌로"
people
>> ["버피", "페이스", "자", "일", "스", "윌", "로"]

people += ["잰더"]
people
>> ["버피", "페이스", "자", "일", "스", "윌", "로", "잰더"]

people[len(people):] = "아스틴"
people
>> ["버피", "페이스", "자", "일", "스", "윌", "로", "잰더", "아", "스", "틴"]
  • 수정: 인덱싱이나 슬라이싱
# 슬라이싱을 이용하여 짝수만 출력
num = [1,2,3,4,5,6,7,8,9,10]
print(num[1::2])
  • 삭제: remove(x)
    • 지우고자 하는 요소 중 가장 앞에 있는 요소 삭제
    • x가 존재하지 않으면 ValueError 예외 발생
  • 값 꺼내기: pop(x)
    • 인덱스 x에 있는 항목을 제거하고 그 항목을 반환
    • 인덱스를 생략하면 가장 마지막 요소를 반환
    • 반환된 요소는 리스트에서 사라짐
  • 정렬: sort
    • 리스트의 요소를 크기순으로 정렬
    • sort(key=None, reverse=False)
    • key: 정렬해주고 싶은 기준, 기본적으로 < 비교에 의해 정렬(오름차순)
    • reverse: True로 설정하게 되면 > 비교에 의해 정렬(내림차순)
  • 뒤집기: reverse
    • 리스트의 순서를 뒤집음
# 리스트 [1, 3, 4, 5, 2]를 [5, 4, 3, 2, 1]로 만든 후 출력하기
list_1 = [1, 3, 4, 5, 2]

# sort, reverse
list_1.sort()
list_1.reverse()

# sort reverse argument
list_1.sort(reverse=True)
  • del문
    • 리스트 인덱스를 지정하여 특정한 항목을 삭제
a = [-1, 4, 5, 7, 10]
del a[0]
a
>> [4, 5, 7, 10]

del a[2:3]
a
>> [4, 5, 10]

# 변수 a 자체를 삭제
del a 
a
>> Traceback (most recent call last):
NameError: name 'a' is not defined
  • index(x):  항목 x의 인덱스를 반환
  • count(x) : 항목 x가 몇 개 들어 있는지 개수 반환

list comprehension

  • [항목 for 항목 in 반복 가능한 객체]
  • [표현식 for 항목 in 반복 가능한 객체]
  • [표현식 for 항목 in 반복 가능한 객체 if 조건문]
  • [표현식 for if 조건 else 저장할 값 항목 in 반복 가능한 객체]

References

반응형