본문 바로가기
Study/Advanced Python

[리스트]

by 구대연 2024. 7. 10. 14:52
  • 파이썬에는 리스트라는 데이터 형이 있습니다. 데이터 형(type)를 몇 가지로 분류할 수 있는데 먼저 숫자 형(태의) 데이터와 문자열 형(태의) 데이터 그리고 부울 형(태의) 데이터 등으로 나눌 수 있습니다. 또 숫자 형(태의) 데이터는 소수점이 있는 형태와 없는 형태로 나눌 수 있습니다.
    • 숫자 형(태의) 데이터
      • 소수점이 있는 숫자형 데이터
      • 소주점이 없는 숫자형 데이터
    • 문자열 형(태의) 데이터
    • 부울 형(태의) 데이터
    등의 데이터 형(태)가 있습니다.
    list_a = [1, 2, 3]   # 숫자 요소들로만 구성된 리스트(list)
    list_b = [1, 2. 3.14]
    
    list_c = ['a', 'b', 'c']   #문자열 요소들만으로 구성된 리스트(list)
    list_d = ['a', 'abc, 'c']
    
    list_e = [ 1, 2, 3.14, 'a', 'abc', 'c'] # 숫자와 문자열 데이터가 썩인 리스트
    list_f = [1, 3.14, 'a', 'boy', True]
    
    인덱스 부여 방식요소 'b' 'o' 'y'
    인덱스 0 1 2
           
    <aside> 💡 ex)아래 보인 리스트 형 데이터 name_list에서 '김성필'의 "김" 출력하는 코드</aside>요소 'b' 'o' 'y' '&' 'g' 'i' 'r' 'l'
    인덱스 0 1 2 3 4 5 6 7
    인덱스 -8 -7 -6 -5 -4 -3 -2  
  • 인덱스 부여 방식
  • name_list = ['왕조현', '구숙정', '김성필', '오천련', '매염방'] what = name_list[2][0] # '김성필'[0] print(what) the_name = name_list[2] # 'the_name'은 문자열 데이터 what = the_name[0] print(what) -김 -김
  • 리스트는 숫자형 또는 문자열 형 등 다양한 요소를 여러 개 저장할 수 있는 데이터 형입니다
  • 리스트 안에 리스트 사용
  • lst = [1, 3.1415, 'boy', [25.4, 11.5]] fourth_element = lst[3] # 네 번째 요소에 대한 인덱스는 3 print( fourth_element ) print( type(fourth_element) ) - [25.4, 11.5] - <class 'list'>
  • 리스트 연결하기 : 연결(+), 반복(), len()
    • 연결(+)
    list_x = [1, 3.1415, 'abc']
    list_y = ['girl', 'boy']
    list_z = list_x + list_y
    
    print(list_z)
    
    - [1, 3.1415, 'abc', 'girl', 'boy']
    
    • 반복(*)
    [1, 2, 3] * 3
    
    - [1, 2, 3, 1, 2, 3, 1, 2, 3]
    
    • len() # 이 함수는 "요소의 개수"(리스트의 길이)를 반환
    print( len([1, 2, 3 ]) )
    print( len('1, 2, 3') )
    
    - 3
    - 7
    
    • 아래 코드에서 보이는 리스트 형 데이터 lst의 요소 개수는 얼마 ?
    print( lst[0] )
    print( lst[1] )
    print( lst[2] )
    print( lst[3] )   # lst[-1]
    
    - 1
    - 3.1415
    - boy
    - [25.4, 11.5]
    
  • 숫자형 데이터 끼리 덧셈, 뺄셈, 곱셉, 나눗셈이 가능하며 덧셈과 뺄셈에 대한 연산자 기호는 우리에게 매우 친숙한 +, -를 사용하고 프로그램에서 곱셈과 나눗셈 기호는 *, /를 사용합니다. 그런데 리스트 형 데이터에서도 +, * 연산자가 있는데 리스트 형 데이터에서 이 두 연산자의 의미는 사칙연산에서 덥셈과 곱셈과 다릅니다.
  • 리스트에 요소 추가하기 : append(), insert()
    • append() 함수
    리스트_형_데이터 = [1, 2, 3]
    리스트_형_데이터.append('추가할_요소')
    print(리스트_형_데이터)
    
    - [1, 2, 3, '추가할_요소']
    
    lst = [1, 2, 3]
    lst.append('boy')
    print( lst )
    
    - [1, 2, 3, 'boy']
    
    • insert() 함수
    lst = [1, 2, 4]
    lst.insert(2, 'b')    # lst의 인덱스 2 위치에 숫자 데이터 3을 끼워넣어라라
    print( lst )
    
    - [1, 2, 'b', 4]
    
    <aside> 💡 <참고> extend() 함수
    lst = [1, 2, 3]
    lst_e = ['a', 'b']
    lst.extend( lst_e )
    
    print(lst)
    
    - [1, 2, 3, 'a', 'b']
    

    • 리스트 연결 연산자 +와 extend()함수의 차이
    list_a = [1, 2, 3]
    list_b = [4, 5, 6]
    list_c = list_a + list_b
    
    print( list_a + list_b)   # 비파괴적 처리
    print( list_c )
    
    print( list_a )
    
    - [1, 2, 3, 4, 5, 6]
    - [1, 2, 3, 4, 5, 6]
    - [1, 2, 3]
    
    </aside>아래와 같이 3명에 대한 정보가 담긴 메시지를 받았습니다.주성치의 주소를 출력하는 코드를 작성하세요.
    • 사람별로 문자열 분리
    • 한 사람에 대한 정보를 분리
    • 특정인의 주소 추출
    msg = '김성필, 남, 50, 경기도 화성시 동탄, 010-9105-0000\\n구숙정, 여, 35, 경기도 용인시, 010-9105-1111\\n주성치, 남, 32, 경기도 수원시, 010-1111-2222'
    
    persions = msg.split('\\n')
    print(persions)
    target = persions[2]
    print(target)
    attributes = target.split(',')
    print(attributes)
    print(attributes[3])
    
    - ['김성필, 남, 50, 경기도 화성시 동탄, 010-9105-0000', '구숙정, 여, 35, 경기도 용인시, 010-9105-1111', '주성치, 남, 32, 경기도 수원시, 010-1111-2222']
    - 주성치, 남, 32, 경기도 수원시, 010-1111-2222
    - ['주성치', ' 남', ' 32', ' 경기도 수원시', ' 010-1111-2222']
    - 경기도 수원시
    
  • '김성필, 남, 50, 경기도 화성시 동탄, 010-9105-0000\\n구숙정, 여, 35, 경기도 용인시, 010-9105-1111\\n주성치, 남, 32, 경기도 수원시, 010-1111-2222'
  • Quiz
  • append()나 insert()는 결국 요소 하나를 리스트에 집어 넣습니다. 한번에 여러 요소를 추가하고 싶을 때는 'extend()'함수를 이용합니다.
  • 형식으로 append()함수는 매우 자주 사용하게 됩니다. append()함수가 하는 기능은 해당 리스트 형 데이터의 맨 마지막에 추가할_요소를 추가합니다. 한마디로 리스트의 맨 마지막에 요소를 추가합니다.
  • 인덱스로 제거하지 : del 키워드, pop()
    lst = [1, 2, 3, 4, 5]
    
    del lst[0]
    print( lst )
    
    - [2, 3, 4, 5]
    
    lst = [1, 2, 3, 4, 5]
    
    lst.pop(2)
    print( lst )
    
    - [1, 2, 4, 5]
    
    • pop() 함수와 append()함수 활용
    • lst = [1, 2, 3, 4, 5] pop_data = lst.pop(0) # 리스트의 맨 앞 요소를 빼서 lst.append(pop_data) # 리스트의 맨 뒤에 붙이기기 pop_data = lst.pop(0) lst.append(pop_data) print( lst ) - [3, 4, 5, 1, 2]
  • 또 리스트에서 인덱스의 범위를 지정하여 해당 요소들을 삭제할 수 있습니다. 리스트의 요소를 지정하는 방법은 아래와 같습니다.

 

'Study > Advanced Python' 카테고리의 다른 글

[정규표현식]  (0) 2024.07.10
[예외 처리]  (1) 2024.07.10
[함수]  (1) 2024.07.10
[반복문]  (0) 2024.07.10
Python 시작  (0) 2024.07.05