본문 바로가기
알고리즘

[알고리즘] Python 기초.2

by Chars4785 2020. 3. 21.

리스트가 가진 다양한 기능

  • 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]

'알고리즘' 카테고리의 다른 글

[Python] 같은 숫자 싫어  (0) 2020.03.25
[알고리즘] Python 기초.3  (0) 2020.03.21
[알고리즘] Python 기초.1  (0) 2020.03.19
[ 알고리즘 ] 주제 목차들  (0) 2019.10.11
[ 알고리즘 ] Sort 정리  (0) 2019.10.09

댓글