Study/Python

[Python] 시퀀스 자료형 (리스트, 튜플, 문자열)

SigmoidFunction 2022. 8. 3. 20:56
728x90

 

시퀀스 자료형

  • 종류 : 문자열, 리스트, 튜플 등
  • 특징 : 1) 여러 객체를 저장
              2) 순서 있음
              3) 인덱스를 사용해 참조 가능

 

[시퀀스형의 공통 연산]

  • 색인 : s[k]
  • 슬라이싱 : s[start : end : step]
  • 연결 : s1 + s2
  • 반복 : s * number_of_repeat
  • 멤버쉽 테스트 : member in sequence
  • 길이 정보 len(sequence)

 

[리스트]

  • mutable : 요소의 치환이 가능
  • 리스트는 가장 보편적인 시퀀스형
  • 리스트에 요소를 추가하는 메소드 : append(), extend(), insert()
  • 리스트에서 요소를 삭제하는 메소드 : remove(), pop()
lst = [4,3,2.0,0,'text']
>>> [4, 3, 2.0, 0, 'text']

lst[3] =1
print(lst)
>>> [4, 3, 2.0, 1, 'text']

print(len(lst))
>>> 5

 

 

 

[리스트 내포]

  • 다른 리스트로부터 새로운 리스트 생성
lst = [1,2,3]
lst2 = [x**2 for x in lst]
print(lst2)
>>> [1, 4, 9]
  • 조건 추가
lst3 = [(x, x**2) for x in lst2 if x<5]
print(lst3)
>>> [(1, 1), (4, 16)]
  • 다중의 for 또는 if절 사용 가능 ( 아래 두개의 코드블럭 동일한 코드)
lst4 = []
for x in lst2:
    for y in lst3:
        lst4.append(x*y[0])
print(lst4)
>>> [1, 4, 4, 16, 9, 36]
lst4 = [x*y[0] for x in lst2 for y in lst3]
print(lst4)
>>> [1, 4, 4, 16, 9, 36]

 

 

 

[튜플]

  • 튜플은 요소의 치환이 불가능한(immutable) 리스트
  • 함수의 입출력 변수와 같이 변경되지 않도록 보호하는 용도로 사용

t = (1,2,'sam')
print(t[0])
>>> 1

t[2] = 0
>>> 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [12], in <cell line: 1>()
----> 1 t[2] = 0

TypeError: 'tuple' object does not support item assignment
t2 = (1)
t3 = (1,)
print(t2, type(t2))
>>> 1 <class 'int'>


print(t3, type(t3))
>>> (1,) <class 'tuple'>

 

 

 

[문자열]

  • 문자열은 요소로 문자만을 가질 수 있으며 치환이 불가능함(immutable)
  • immutable하기 때문에 문자열 연산의 결과를 다른 변수에 치환해야 함에 주의
  • 문자열 연산자 : split, find, replace
st = 'This.is.a,string'
st.split('.')
>>> ['This', 'is', 'a,string']


st
>>> 'This.is.a,string'


st.find('string')
>>> 10


st.replace('string', 'sentence')
>>> 'This.is.a,sentence'


st
>>> 'This.is.a,string'

 

728x90