본문 바로가기

컴퓨터 관련/파이썬

[파이썬] 3. 시퀸스 자료형

728x90
반응형

1. 시퀸스 자료형이란?

  • 같은 자료형의 값이 여러개 저장되는 자료형
  • 다른 비슷한 속성을 가지나, 쓰임과 종류에 따라 "리스트","튜플","range","문자열"로 나뉨

1.1. 시퀸스 자료형의 특징

  • 특정 값의 유무 확인하기
    a = [1,3,4]
    print(10 in a) #리스트에 해당 값이 있는지 확인하기
    print(10 not in a) # 리스트에 해당 값이 없는지 확인하기

2. 리스트

2.1. 리스트란?

  • 리스트의 구조는 연결리스트의 구조이다.
  • 리스트는 배열과 달리 길이의 제한이 없다.
  • 리스트는 원소의 편집이 자유롭다.
  • 리스트는 서로 다른 타입도 대입이 가능하다.
  • 또한, 리스트를 이용해 반복문을 실행할 수 있음
a = [1,2,3,4,5,6]
result = 0
for num in a:
    result += num
print(result)

2.3. 리스트 정의하기

Variable = [value, value, ...]

# Variable: 리스트 객체를 저장할 변수를 의미함
# value: 리스트에 저장할 값을 의미함. 숫자나 리스트등이 올 수 있다.

2.2. 리스트의 종류

a = [] #빈 리스트
b = [1,3,4] # 정수 리스트
c = ['hello','world'] # 문자열 리스트
d = [1,2,[3,'Python']] # 중첩 리스트

2.3. 리스트 연산하기

  • 리스트 연결하기
a = [1,2,3]
b = [1,2,3]
a + b
  • 리스트 N번 출력하기
a = [1,3,4]
a * 2
  • 리스트 길이 구하기
a = [1,3,4]
len(a)

2.4. 리스트 수정과 삭제

  • 리스트 수정하기
a = [1,3,4]
a[1] = 2
  • 리스트 삭제하기
a = [1,3,4]
del a[1]

2.5. 리스트 관련 함수

  • list.append(value)
# 리스트의 맨 뒤에 원소를 추가하는 함수
a = [1,2,5,3,4]
a.append(1)
  • list.insert(index, value)
# 지정한 인덱스 앞에 원소를 추가하는 함수
a = [1,2,5,3,4]
a.insert(1,3)
  • list.remove(x)
# 리스트의 특정한 원소를 찾아서 삭제하는 함수
a = [1,2,5,3,4]
a.remove(1)
  • list.pop([index])
# 리스트의 특정한 원소를 찾아서 꺼내면서 삭제하는 함수
a = [1,2,5,3,4]
num = a.pop(1)
  • list.clear()
# 리스트의 모든 원소를 없애는 함수
a = [1,2,5,3,4]
a.remove()
  • list.count(value)
# Value가 얼마나 있는지 확인하는 함수
a = [1,2,5,3,4]
a.count(2)
  • list.sort(*, key=None, reverse=False)
# 리스트의 원소를 정렬
a = [1,2,5,3,4]
a.sort()
# 리스트의 원소를 역순으로 정렬
a = [1,2,5,3,4]
a.sort(reverse = True)
# 리스트의 원소를 key를 기준으로 정렬
a = [1,2,5,3,4]
a.sort(key = 1)
  • list.reverse()
# 리스트의 원소 순서를 반대로 만듦 (정렬X)
a = [1,2,5,3,4]
a.reverse()
  • list.copy()
# 리스트 얕은 복사를 수행하여, 반환하는 함수
a = [1,2,5,3,4]
b = a.copy()

2.6. 리스트 컴프리헨션

  • 기본형
# 이 코드와 아래 있는 코드는 동일함.
Variable = []
for Var in seq:
  Variable.append(Variable2)

Variable = [Variable2 for Var in seq]
# Variable: 리스트를 저장하기 위한 변수
# Variable2: for문을 통해 계산된 값. 리스트의 원소가 되는 값
# for Var in seq: for문의 원리와 같음.
  • 변수가 1개, 단일 반복문인 예시
a = [x for i in range(1,10)]
  • 변수가 2개, 단일 반복문인 예시
a = [(x,x2+1) 0for i in range(1,10)]
  • 중첩 반복문인 예시
# 구구단을 리스트에 저장하는 예시
a = [x*y for x in range(2,10) for y in range(1,10)]

3. 튜플

3.1. 튜플이란?

  • 리스트와 달리, 튜플은 값의 삭제와 수정이 불가능함.
  • 한번 저장하고 나면, 값이 바뀌면 안되는 것들을 저장하는데 사용한다.

3.2. 튜플 정의하기

  • 기본형
Variable = (value, value, ...)

# Variable: 튜플 객체를 저장할 변수를 의미함
# value: 튜플에 저장할 값을 의미함. 숫자나 리스트등이 올 수 있다.
  • 원소가 1개인 튜플 정의하기
a = (1,)

3.3. 튜플 연산하기

  • 튜플 연결하기
a = (1,2,3)
b = (1,2,3)
a + b
  • 튜플 N번 출력하기
a = [1,3,4]
a * 2
  • 튜플 길이 구하기
a = [1,3,4]
len(a)

3.4. 튜플 수정과 삭제

  • 튜플은 수정과 삭제가 불가능하다.

3.5. 튜플의 언패킹

# 필요 없는 값은 무시하기
a,b,_ = (1,3,4)
print(a,b)

# 여러 튜플 값을 갖는 리스트 변수 만들기
c,*d = (1,2,3,4,5,6,7,8,9,10)
print(c,d)

4. range()

4.1. range()란?

  • 시작점과 끝점, 스텝을 지정하면, 규칙에 맞는 숫자를 보여주는 객체.
  • 주로 for문에서 많이 사용된다.

4.2. range() 정의하기

Variable = range(start,stop,step)
# Variable: range()객체를 저장할 변수를 의미함.
# start: range count를 시작할 숫자 지정
# end: range count를 끝낼 숫자 지정 (실제로는 이 숫자 전에 끝남)
# step: Count 할 때, 얼마나 건너 띌지에 대한 숫자지정

4.3. range() 연산하기

  • range() 연결하기
# 리스트나 튜플로 변환하여 연결해야 한다.
list(range(0,12)) + list(range(12,30))
tuple(range(0,12)) + tuple(range(12,30))
  • range() N번 출력하기
# 리스트나 튜플로 변환하여 출력할 수 있다.
a = list(range(1,2,1))
a*2
  • range() 길이 구하기
a = range(1,3,1)
len(a)

4.4. range() 수정과 삭제

  • range()는 수정과 삭제가 불가능하다.
  • range()를 정의하면서 이미 Sequencial한 객체를 만들었기 때문이다.

5. 문자열

5.1. 문자열이란?

  • 파이썬의 문자열은 시퀸스 자료형으로써, 인덱싱이나 슬라이싱이 가능하다.

5.2. 문자열 정의하기

Variable = "String" or 'String'
# Variable: 문자열 객체를 저장할 변수를 의미함.
# String: 저장할 문자열

5.3. 문자열 연산하기

  • 문자열 연결하기
a = "HelloWorld!"
b = "Bye!"
a + b
  • 문자열 N번 출력하기
a = "HelloWorld!"
a*2

5.4. 문자열 수정과 삭제

  • 문자열은 어느 한 글자만 바꾸는 것이 불가능하다.
  • 문자열은 어느 한 글자만 삭제하는 것이 불가능하다.

5.5. 문자열 함수

  • len(str)
# 문자열 길이 구하기
a = "HelloWorld!"
len(a)
  • str.upper()
# 문자열을 대문자로 변환
a = "HelloWorld!"
a.upper()
  • str.lower()
# 문자열을 소문자로 변환
a = "HelloWorld!"
a.lower()
  • str.strip()
# 문자열의 좌우 공백을 없앰
a = " HelloWorld! "
a.strip()
  • str.split(str1)
# 문자열을 str1을 기준으로 나눈뒤에, 리스트로 반환
a = "Hello World!"
a.split()

b = '12339858123398240'
b.split('123')
반응형