[TIL] python_sequence

정세비·2021년 5월 20일
0

python

목록 보기
7/10
post-thumbnail

시퀀스 자료형 (sequence) :

리스트, 튜플, range, 문자열 처럼 값이 연속적으로 이어진 자료형

<특정 값 유무 확인 >

>>> a = [1, 2 3, 4, 5]
>>> 3 in a
True
>>> 0 in a
False

>>> a = [1, 2, 3, 4, 5]
>>> 0 not in a
True
>>> 3 not in a
False

<시퀀스 객체 연결 >

  • - + 를 사용하여 서로 연결 후 새 객체 생성
  • range는 + 연산자로 객체 연결 불가. 리스트나 튜플을 사용하여 연결함
  • 문자와 숫자(정수, 실수) 연결 불가. 숫자를 str을 사용하여 문자열로 변환 후 연결해야 함
  • 반복은 * 를 활용 하며 range는 리스트나 튜플을 사용하여 연결
>>> a = [1, 3,, 5]
>>> b = [2, 4]
>>> a + b
[1, 2, 3, 4, 5]

>>> list(range(0, 2)) + list(range(3, 5))
[0, 1, 2, 3, 4, 5]

>>> 'Point' + str(5)
Point5

>>> (1, 2) * 2
(1, 2, 1, 2)

>>> tuple(range(0, 8, 4)) * 2
(0, 4, 0, 4)

<시퀀스 객체 요소 개수 구하기 >

  • len( ) 를 사용
>>> a = (1, 2, 3, 4)
>>> len(a)
4
>>> len(range(0, 10, 2))
5
>>> hi = 'hello world!'
>>> len(hi)
12

// <응용> 인덱스에 len을 사용하여 마지막 요소 출력
>>> name = 'Hello, my name is S'
>>> name[len(name) - 1]   // index는 0부터 시작하므로 -1을 해줘야 함
'S' 

<요소에 값 할당하기 >

  • 리스트에 값 할당 가능
  • 튜플, range에는 할당 불가
>>> a = [0, 0, 0, 0]
>>> a[0] = 1
>>> a[1] = 2
>>> a[2] = 3
>>> a[3] = 4
>>> a
[1, 2, 3, 4]
  • 슬라이스에 요소 할당하기 (튜플, range, 문자열은 할당 불가능)
>>> a = [0, 1, 2, 3, 4, 5]
>>> a[2:4] = ['due', 'tre']   // 2, 3까지 값 할당
>>> a
[0, 1, 'due', 'tre', 4, 5]

// 할당할 요소 수가 적어지면 그만큼 리스트 요소 개수도 줄어듦
>>> b = [0, 1, 2, 3, 4, 5]
>>> b[2:4] = ['due']   // 2, 3 에 할당되어야 하나, 1개만 할당됨으로서 요소가 사라짐
>>> b
[0, 1, 'due', 4, 5]

// 만약 할당할 요소가 많으면, 리스트 요소 개수도 늘어남

//인덱스 증가폭 지정 할당 .. 이 때는 범위 요소 수와 할당 요소 수가 일치해야 함
>>> a = [0, 1, 2, 3, 4, 5]
>>> a[2:5:2] = ['due', 'quatro']
>>> a
[0, 1, 'due', 3, 'quatro', 5]
>>> 

profile
파주

0개의 댓글