파이썬 파트14. 리스트 더 알아보기 - split, join, slice
26 Feb 2017 | python 파이썬 리스트 split join slice파이썬 파트14. 리스트 더 알아보기
리스트가 가진 다양한 기능
- 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]