이번 챕터에서는 리스트, 튜플, 세트, 딕셔너리 와 같이
데이터가 묶여있는 집합 중 리스트를 알아보겠습니다.
1. 리스트 (List)
: 여러 데이터를 묶어서 정의한다.
1) 리스트의 생성
리스트명 = list()
리스트명 = [ data1, data2, data3, ....... ]
(※ 대괄호와 쉼표를 이용해서 표현)
2) 리스트 인덱싱
리스트명[index] : index 위치의 data를 불러옴
index : 0 1 2 ......
(- 은 뒤로부터 순서) ...... -2 -1
리스트명 = [ data1, data2, data3, ....... ]
(※ index 는 list안 data의 위치)
3) 슬라이싱 (slicing)
: 리스트의 일부 구간 선택, 다수 원소 선택
리스트명[시작index : 마지막 index : 간격 ]
(※ slicing된 list는 새로 생성되므로
수정해도 원래 list는 보존됨)
4) 리스트의 수정
리스트명[index] = 바꿀값
: 인덱스를 사용한 수정
리스트명.append(삽입값)
: .append() 메서드를 이용한 삽입
리스트명.insert(index,삽입값)
: .insert() 메서드를 이용한 삽입
리스트명.extend( [삽입list] )
: .extend() 메서드를 이용한 확장
(※ 메서드는 나중에 설명)
5) 리스트의 삭제
리스트명.remove( 삭제값 )
: 삭제값과 일치하는 첫번째 data삭제
변수=리스트명.pop( 뽑아낼값 )
: 특정값을 list에서 뽑아서 반환 및 제거
del 리스트명[index]
: index위치의 data 삭제
6) data의 검색
리스트명.count( 찾는값 )
: 찾는 data의 갯수 반환
찾는값 in 리스트명
: 멤버십 연산자, 찾는값이 있으면 True 반환
7) 리스트의 정렬
리스트명.sort( )
: 오름차순 정렬
리스트명.sort(reverse=True)
: 내림차순 정렬
예시)
#---------------1------------------
l1=list()
print(type(l1),l1)
l2=[]
print(type(l2),l2)
#초기화된 리스트를 생성
l3=list((1,2,3,4)) #튜플을 사용해야함
#데이터 중복 허용, 공백,탭,개행 무시
# 모든 데이터 저장가능
l3 = [3,5,True,"jjang",[1,2,3]]
print(l3)
#---------------2------------------
# -6 -5 -4 -3 -2 -1
# 0 1 2 3 4 3 > 인덱스 (index)
a = [10,20,30,40,50,60]
# 인덱싱 (indexing)
print(a[3])
print(a[5])
print(a[-1])#-1 을 쓰면 마지막 원소 선택
a[2]
#인덱스가 zero base 이기 때문에 원소의 갯수가 n일때, 마지막 원소 인덱스는 n-1
#Len : 자료구조 안에 저장된 원소의 갯수를 반환하는 함수 (length)
print(len(a))
print(a[5])
print(a[len(a)-1])
#---------------3------------------
#슬라이싱(slicing): 리스트이 일부 구간을 선택하거나 다수의 원소를 선택가능
# 리스트명[시작인덱스:마지막인덱스:간격]
# 반개구간[시작인덱스,마지막인덱스]
# -6 -5 -4 -3 -2 -1
# 0 1 2 3 4 5
a = [11,12,13,14,15,16]
print(a[0:5:2])
print(a[2:4:1]) # 간격1시 생략가눙, 마지막 인덱스+1 사용가능
print(a[0:6]) # 시작인덱스 0일때 생략가능
# 마지막 요소 포함하면 인덱스 생략가능
print(a[:6])
print(a[0:])
print(a[:]) # 리스트 전체
#슬라이싱된 list는 새로 생성되는것으로 원래 list 와 연계 x
# 수정해도 원본은 안바뀜
print(a)
#---------------4------------------
#음수 사용가능
print(a[-4:-1])
print(a[5:1:-2])
print(a[:-1])
print(a[::-1])
#---------------5------------------
#리스트의 수정
a = [11,22,33,44]
#인덱스를 사용한 수정
a[0]=0
print(a)
# 추가 :메서드 .append(삽입값)
a.append(100)
a.append(200)
print(a)
#삽입 메서드 .insert(index,삽입값)
a.insert(1,100)
print(a)
# 0 1 2 3
# -4 -3 -2 -1
a = [11,22,33,44]
a.insert(-1,200)
print(a)
# 확장 : .extend([삽입list])
a = [11,22,33,44]
a.extend([10,100])
print(a)
#---------------6------------------
#리스트의 삭제
# 일치하는 첫번째 값을 삭제 remove
a=["a","b","c","d","a","b","b"]
a.remove("a")
print(a)
#리스트 제거 (뽑기)
# pop (제거한 요소를 저장)
b=a.pop(2)
print(a,b)
a= [ 3,4,5,6,5]
del a[2]
print(a)
#---------------7------------------
#카운트
a=["a","b","c","d","a","b","b"]
print(a.count("a"))
#멤버십 연산자 : in , 존재하면 True, 없으면 False
if "a" in a:
print("O")
else:
print("x")
a=["a","b","c","d","a","b","b"]
print(a.index("a"))
#정렬
a.sort()#오름차순
print(a)
a.sort(reverse=True)
print(a)
#---------------8------------------
#comprehension 컴프리헨션 : 반복문과 수식(표현식)을 사용하여 리스트의 요소를 정의
#[수식반복문]
a=[b**2 for b in range(1,11)]
print(a)
#필터
c=[]
for d in range(1,11):
if(d%2)==0:
c.append(d**2)
print(c)
a=[b**2 for b in range(1,11) if(b % 2)==0]
print(a)
결과값)
#---------------1------------------
<class 'list'> []
<class 'list'> []
[3, 5, True, 'jjang', [1, 2, 3]]
#---------------2------------------
40
60
6
60
60
#---------------3------------------
[11, 13, 15]
[13, 14]
[11, 12, 13, 14, 15, 16]
[11, 12, 13]
[13, 14, 15, 16]
[11, 12, 13, 14, 15, 16]
[11, 12, 13, 14, 15, 16]
#---------------4------------------
[13, 14, 15]
[16, 14]
[11, 12, 13, 14, 15]
[16, 15, 14, 13, 12, 11]
#---------------5------------------
[0, 22, 33, 44]
[0, 22, 33, 44, 100, 200]
[0, 100, 22, 33, 44, 100, 200]
[11, 22, 33, 200, 44]
[11, 22, 33, 44, 10, 100]
#---------------6------------------
['b', 'c', 'd', 'a', 'b', 'b']
['b', 'c', 'a', 'b', 'b'] d
30
[3, 4, 6, 5]
#---------------7------------------
2
O
0
['a', 'a', 'b', 'b', 'b', 'c', 'd']
['d', 'c', 'b', 'b', 'b', 'a', 'a']
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
#---------------8------------------
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[4, 16, 36, 64, 100]
[4, 16, 36, 64, 100]
'Python' 카테고리의 다른 글
8. Python - 튜플, 세트, 딕셔너리 (0) | 2021.09.17 |
---|---|
6. Python - 제어문 (조건문, 반복문) (0) | 2021.09.17 |
5. Python - 입출력 (0) | 2021.09.16 |
4. Python - 변수 (0) | 2021.09.15 |
3. Python - 연산자 (0) | 2021.09.14 |
댓글