- 파이썬에는 리스트라는 데이터 형이 있습니다. 데이터 형(type)를 몇 가지로 분류할 수 있는데 먼저 숫자 형(태의) 데이터와 문자열 형(태의) 데이터 그리고 부울 형(태의) 데이터 등으로 나눌 수 있습니다. 또 숫자 형(태의) 데이터는 소수점이 있는 형태와 없는 형태로 나눌 수 있습니다.
- 숫자 형(태의) 데이터
- 소수점이 있는 숫자형 데이터
- 소주점이 없는 숫자형 데이터
- 문자열 형(태의) 데이터
- 부울 형(태의) 데이터
인덱스 부여 방식요소 'b' 'o' 'y'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]
인덱스 0 1 2 인덱스 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() 함수
<aside> 💡 <참고> extend() 함수lst = [1, 2, 4] lst.insert(2, 'b') # lst의 인덱스 2 위치에 숫자 데이터 3을 끼워넣어라라 print( lst ) - [1, 2, 'b', 4]
lst = [1, 2, 3] lst_e = ['a', 'b'] lst.extend( lst_e ) print(lst) - [1, 2, 3, 'a', 'b']
- 리스트 연결 연산자 +와 extend()함수의 차이
</aside>아래와 같이 3명에 대한 정보가 담긴 메시지를 받았습니다.주성치의 주소를 출력하는 코드를 작성하세요.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]
- 사람별로 문자열 분리
- 한 사람에 대한 정보를 분리
- 특정인의 주소 추출
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]
- 또 리스트에서 인덱스의 범위를 지정하여 해당 요소들을 삭제할 수 있습니다. 리스트의 요소를 지정하는 방법은 아래와 같습니다.