파이썬 파트14. 리스트 더 알아보기 - split, join, slice

|

파이썬 파트14. 리스트 더 알아보기

try hello world 파이썬 입문 강의

리스트가 가진 다양한 기능

  • list.index( value ) : 값을 이용하여 위치를 찾는 기능
  • list.extend( [value1, value2] ) : 리스트 뒤에 값을 추가 (‘+’연산자 보다 성능이 좋음)
  • list.insert( index, value ) : 원하는 위치에 값을 추가
  • list.sort( ) : 값을 순서대로 정렬
  • list.reverse( ) : 값을 역순으로 정렬
>>> list1 = ['a', 'b', 'q', 'f']
>>> list1.index('b')
1

>>> list2 = [1, 2, 3]
>>> list1.extend(list2)
>>> list1
['a', 'b', 'q', 'f', 1, 2, 3]


>>> list1.insert(1, 'hi')
>>> list1
['a', 'hi', 'b', 'q', 'f', 1, 2, 3]

>>> list1.sort()
>>> list1
[1, 2, 3, 'a', 'b', 'f', 'hi', 'q']

>>> list1.reverse()
>>> list1
['q', 'hi', 'f', 'b', 'a', 3, 2, 1]

list와 string - .split(), .join()

  • 리스트와 문자열은 유사하다.
>>> my_list = [1, 9, 8, 5, 0, 6]
>>> my_str = 'hello world'
>>> 5 in my_list
True
>>> 'e' in my_str
True
  • 서로 변환이 가능하다.
    • list = str.split() : 문자열 => 리스트, 공백시 스페이스 기준
    • ” “.join( list ) : 리스트에서 문자열으로
>>> char = list('hello')
>>> char
['h', 'e', 'l', 'l', 'o']

# string => list
>>> words = "python은 프로그래밍을 배우기에 아주 좋은 언어입니다."
>>> words_list = words.split()
>>> words_list
['python은', '프로그래밍을', '배우기에', '아주', '좋은', '언어입니다.']

>>> time_str = "10:34:17"
>>> time_str.split(':')
['10', '34', '17']

# list => string
>>> time_list
['10', '34', '17']
>>> ':'.join(time_list)
'10:34:17'

slice

  • slicing : 리스트나 문자열에서 값을 여러개 가져오는 기능
  • list[ 시작:끝] 시작은 포함 되지만 끝 값은 포함되지 않는다.
text = "hello world"
text = text[ 1:5 ] #index 1부터 ~ index 5 전(4)까지

list = [ 0, 1, 2, 3, 4, 5 ]
list = list[ 1:3 ]
  • slice를 하면 해당하는 부분의 리스트나 문자열을 새로 만들어 준다.
  • 시작과 끝부분을 얻어 오는 방법
    • list[ 2: ] : 2번째부터 끝까지 반환
    • list[ : 2 ] : 처음부터 2번째 까지 반환
    • list[ : ] : 처음부터 끝까지 전부 반환 (리스트를 복사해 둘 때 유용하게 사용됨)

step

  • slice한 값의 범위에서 step 값을 주어 그 값만큼 건너뛰어 가져오는 기능
  • list[ 시작값:끝값:step ]
>>> list1 = list(range(20))
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

>>> list1[5:15:3]
[5, 8, 11, 14]
>>> list1[15:5:-1]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6]
>>> list1[::3]
[0, 3, 6, 9, 12, 15, 18]
>>> list1[::-3]
[19, 16, 13, 10, 7, 4, 1]

slice로 리스트 수정하기

  • 삭제
    • del list[ :5 ] : 처음부터 5번째 전까지 삭제
    • 참고 : del 함수는 파이썬이 자체적으로 가지고 있는 삭제 함수이며 다음과 같이 사용한다.
del 객체
# 객체란 파이썬에서 사용되는 모든 자료형을 말한다.
  • 수정
    • list[ 1:3 ] = [ 77, 88 ]
    • list[ 1:3 ] = [ 77, 88 ,99 ] : 더 많은 개수로 변환
    • list[ 1:4 ] = [ 8 ] : 더 적은 개수로 변환
>>> numbers = list(range(10))
>>> numbers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 삭제
>>> del numbers[:5]
>>> numbers
[5, 6, 7, 8, 9]

# 수정
>>> numbers[1:3] = [66, 77]
>>> numbers
[5, 66, 77, 8, 9]