파이썬따라하기/2자료형

#자료형4편 - 파이썬 리스트 자료형 기초 python

모두의 실험실 2023. 5. 1. 20:26
728x90

※접속하시어 실습하면서 학습하세요. 파이썬 설치 없이 코드실행할 수 있어요
클릭클릭 : https://tinyurl.com/ynpj4ykv       

 

파이썬 실습 실행 가능해요 이용해 보세요

파이썬 코드 입력하시고 맨우측 '▶' 클릭하면 실행 됩니다 #파이썬 테스트 코드 (복사붙여넣기로 테스트해보세요) for i in range(5): print(str(i) + ' 오늘하루 행복하세요') 파이썬은 컴퓨터 언어다 이

modoopython.tistory.com

 

리스트 자료형이란 도데체 뭐다?

우리의 삶속엔 뭐든 연결이 되어있고 울타리 속에 존재함

처음 초등학교만 입학하더라도 한 반에 수십명이 존재함

 

군대에가도 1소대 2소대 3소대

1소대에도 이병부터 병장까지 여러명으로 구성됨

 

회사에 가도 1팀 2팀 

1팀안에 사원부터 부장까지 여러명으로 구성됨

 

사회구조가 그러함

그래서 하나가 아닌 여러개의 요소를 그룹별로 관리가 필요

 

그런걸 코딩을 통해 자동으로 하려고 리스트 자료형이 필요함

구글링을 검색하면 더 자세히 나옴

'모두의 실험실'에서는 초간단 이해하기 쉽게 하는게 목표임

 

공식적인 명칭이라 어렵게 자료형이라고 말하지만

간단히 리스트 변수라고 이해해도 편함

그리고 코딩할때는 물아일체 손과 머리가 실시간

움직이며 나도 모르게 코딩하고 있어야함

그 만큼 공부하고 코딩을 계속하다 보면 자연스럽게 됨

 

1+1은 2라는걸 의문을 가짐? 그냥 사용하는것과 같음

 

그럼 이제 뭐다? 예시를 통해 알아봐야함

리스트의 형태는 다음과 같음 

보통 꺽쇠라고 표현함 []

a = [1, 2, 3, 4, 5]
print(a)
b = ['a', 'b', 'c' ,'d' ,'e']
print(b)
c = [1, '1', 'a']
print(c)
d = [1, [1, '1'], 2]
print(d)
e = []
print(e)
print(type(a), type(b), type(c), type(d), type(e))

-결과 (드래그로 확인가능)

[1, 2, 3, 4, 5]
['a', 'b', 'c', 'd', 'e']
[1, '1', 'a']
[1, [1, '1'], 2]
[]
<class 'list'> <class 'list'> <class 'list'> <class 'list'> <class 'list'>

 

다양한 형태로 리스트를 만들 수 있음

리스트 내부는 정수형(a결과) 문자형(b결과) type이 올 수 있으며

서로 다른 type이(c결과) 하나의 리스트에도 구성이 가능함

d와 같이 리스트 내부에 또 다른 리스트 구성도 구능하며

e와 같이 요소가 없이도 리스트 표현이 가능함

 

리스트활용할 때는 인덱스과 슬라이스 기능을 자주사용함

문자열 학습에서도 다루었음

인덱스는 특정부분 슬라이스는 특정부분의 범위임

용어자체를 암기하기 보다 개념을 이해하는것이 더 중요함

a = [1, 2, 3, 4, 5]
b = a[3] #인덱스
print(b)
c = a[:3] #a[0:3]의 결과와 동일
print(c) #슬라이스

 

-결과 (드래그로 확인가능)

4
[1, 2, 3]

 

인덱스는 0번부터 시작함

그래서 3은 4번째이므로 인덱스의 결과는 4이며

슬라이스의 결과는 마찬가지로 0부터 3전까지 임

그래서 결과는 앞에서 3번째 까지임

 

참고로 코드내에 #을 사용하며 그 뒤(오른쪽)으로는 주석처리됨

 

리스트의 인덱스 및 슬라이스가 일반적으로는 앞에서 부터숫자가 증가하지만 뒤에서 인덱스 및 슬라이스의 몇번째를사용할 경우도 많음

a = [1, 2, 3, 4, 5]
b = a[-1]
print(b)
c = a[:-3] 
print(c) #슬라이스
d = a[-3:]
print(d)

-결과 (드래그로 확인가능)

5
[1, 2]
[3, 4, 5]

 

인덱스 -1은 맨뒤에 있는 리스트 요소를 찾을때 사용됨

슬라이스 [:-3]은 처음부터 뒤에서 3번째의 앞까지 찾을 때 사용됨

슬리이스 [-3:]은 뒤에서 3번째부터 맨끝까지 찾을때 사용됨

이렇게 이해하고 반복적인 실전 연습을 스스로가 실행하면서 습득필요함

 

이중리스트는 리스트를 응용한것임

한집에 여러방의 개념으로 이해하면됨

방안에 물건을 요소라고 생각하면 쉬움

house = [['침대','TV'],['책상','컴퓨터'],['화장대','오디오']]
print(house)
room1 = house[0]
print(room1)
tv = house[0][1]
print(tv)

-결과 (드래그로 확인가능)

[['침대', 'TV'], ['책상', '컴퓨터'], ['화장대', '오디오']]
['침대', 'TV']
TV

 

리스트안에 몇번째 리스트도 동일하게 인덱스 개념을 적용하면 됨

room1은 house의 첫번째 요소이므로 house[0]으로 표현

tv는 room1의 두번째 요소이므로 room1[1]

그래서 tv는 house의 첫번째 요소에서 두번째요소로 표현하면

house[0][1]가 됨

 

리스트 더하는것과 길이구하는 것이 자주 사용됨추가적으로 *연산도 있음

a = [1, 2, 3, 4, 5]
print(a)
b = ['a', 'b', 'c']
print(b)
c = a + b
print(c)
d = len(a)
print(d)
e = a*2
print(e)

-결과 (드래그로 확인가능)

[1, 2, 3, 4, 5]
['a', 'b', 'c']
[1, 2, 3, 4, 5, 'a', 'b', 'c']
5
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

 

+로 리스트를 합칠수 있음

len함수를 사용하여 리스트내 갯수를 확인함

리스트에 숫자를 곱하면 리스트를 숫자만큼 반복하여 합침

 

리스트 요소의 수정이 필요할 때가 있음리스트 요소의 값을 변경하거나 요소를 삭제할 수 있음

a = [1, 2, 3, 4, 5]
print(a)
a[-1] = 10 ##맨마지막 요소값 변경
print(a)
del a[0] ##맨앞 요소값 삭제
print(a)

-결과 (드래그로 확인가능)

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 10]
[2, 3, 4, 10]

 

리스트 맨뒤값을 10으로 정의하면 리스트의 값이 변경됨

del 명령어를 사용하여 맨앞요소를 삭제함

 

리스트 요소를 추가할때 append함수를 사용함리스트 요소를 정렬할때 sort함수를 사용하며뒤집을때는 reverse함수를 사용함

a = [2, 7, 5]
print(a)
a.append(4)
print(a)
b = a
print(b)
a.sort()
print(a)
b.sort(reverse=True)
print(b)
c = [2, 7, 5, 4]
c.reverse()
print(c)

-결과 (드래그로 확인가능)

[2, 7, 5]
[2, 7, 5, 4]
[2, 7, 5, 4]
[2, 4, 5, 7]
[7, 5, 4, 2]
[4, 5, 7, 2]

 

append함수를 사용하여 4를 추가할 수 있고

sort를  하여 작은 순서대로 정렬이 가능함

이는 sort(reverse= False)와도 동일하며

sort(reverse= True)는 크기가 역순으로 정렬이됨

reverse()함수는 크기를 역순으로 하는것이아니라

리스트 자체를 역순으로 배치하는 것이며인덱스가 역순이 되는 것과 같음

 

이중리스트에서 요소별 정렬할 수 있음

math = [['영희',90], ['철수',100], ['맹구', 25],['영구' ,10]]
print(math)
math.sort(key=lambda x:-x[1])##리스트 두번째 요소(점수) 크기순으로 정열
print(math)
math.sort(key=lambda x:x[1]) ##리스트 두번째 요소(점수) 크기가 작은순으로 정열
print(math)

-결과 (드래그로 확인가능)

[['영희', 90], ['철수', 100], ['맹구', 25], ['영구', 10]]
[['철수', 100], ['영희', 90], ['맹구', 25], ['영구', 10]]
[['영구', 10], ['맹구', 25], ['영희', 90], ['철수', 100]]

 

sort함수와 lambda를 사용하여 두번째 요소를 크기순으로와 크기의 역순으로 정렬을 할수 있음

 

태그

-------------------------------------------------------------

#python, #파이썬, #anaconda, #아나콘다, #기초, #클래스, #class, #import, #selenium, #셀레늄, #자동, #교육, #코딩교육, #coding, #chatgpt, #챗GPT, #로봇,

 

728x90
반응형