리스트 정리

하나. 목록은 순서가 지정된 시퀀스 데이터 유형입니다.

(인덱싱 및 슬라이싱 가능)

a=(1,2,3,4,5)
a(0) # Indexing
a(0:3) # Slicing -> 자료형(start:stop:step)

2. 값을 변경할 수 있습니다.

a=(1,2,3,4,5)
a(0) = 100000 #값 변경 가능
print(a)
----------------
(100000, 2, 3, 4, 5)

s="haaaaaai"
s(0) #s의 0번째는 호출 가능
s(0) = 'k' #s의 0번째를 k로 변경 -> type error 발생

3. 다른 종류의 데이터를 입력할 수 있으며, 목록 안에 목록이 있는 다차원 목록을 만드는 것도 가능합니다.

4. 중복 값이 ​​허용됩니다.

기능 요약

-추가/삭제

a=(1,2,3)

# append  - 원소추가
a.append(10)
print(a)
-------------
(1,2,3,10)


# clear  - 원소 비우기
a.clear()
print(a)
-----------
()

-복사

#copy
a=(1,2,3)
b=a
c=b

c(0)=10000
print(a)
-------------
(10000,2,3)

(1,2,3) <-a <-b <-c를 가리키므로 c가 변해도 a의 값은 변한다.

그들 사이의 연결을 끊고 싶다면 복사를 사용하십시오.

#copy
a=(1,2,3)
b=a.copy()
c=b

c(0)=10000
print(a)
print(c)
-------------
(1,2,3)
(10000,2,3)

b는 a가 아닌 a의 복사본을 가리키므로 c의 값을 변경해도 a의 값은 변경되지 않고 b와 c의 값이 변경됩니다.

-계산하기

#count
a=(1,2,3,4,1,2,3)
a.count(1)
---------------
2 # 리스트 a 안에 1의 개수는 2개

-확장하다

# extend
a=(12,20,30)
a.extend((1,2,1,2,3))
----------------------
(12,20,30,1,2,1,2,3)

# append는 안됨
a.append(1,2,1,2,3)
---------------------
error

#리스트로 묶으면 리스트 통채로 붙음/ 2차원 행렬이 되어버림
a.append((1,2,1,2,3))
----------------------
(12,20,30,(1,2,1,2,3))

-색인

#index
a=(10,1,1,11,2,23,12)
print(a.index(11)) #11의 위치를 찾겠다
--------------------------------------
3

#index()를 활용한 인덱싱/슬라이싱
print(a(a.index(11))) # 11 인덱싱
print(:a(a.index(11))) #11까지 슬라이싱
---------------------------------------
11
(10,1,1)

-삽입/팝

#insert
a=(10,1,2)
a.insert(2,100000000) #2번째 위치에 100000000추가 
print(a)
-----------------------
(10, 1, 100000000, 2) # 2번째 위치에 추가되고 나머지 값들은 뒤로 밀림




#pop
print(a.pop()) # 맨 마지막 값을 꺼낸다( 리턴값이 마지막 값 )
print(a)
a.pop(2) # 위치를 정할 수 있음 ( 2 번째 위치를 삭제 )
print(a)
------------------------------------------------------------
2
(10, 1, 100000000) # a의 마지막 값도 꺼낸 상태
(10, 1)

-제거됨

a=(1,1,1,2,3,2,1,2,1,2,1)
a.remove(1) # 1 을 삭제
print(a)
-------------------------
(1,1,2,3,2,1,2,1,2,1) # 1을 전부 지우는게 아닌 첫번째 만난 원소만 제거
# 다 지우고 싶으면 count(1)을 한 만큼 반

– 반전/정렬

#reverse
a=(1,2,1,2,3,4,5,6,7)
a.reverse() # 
print(a)
---------------------------------------------------------
(7, 6, 5, 4, 3, 2, 1, 2, 1) #역정렬이 아니라 역순인걸 기억

#sort
# 역정렬이 하고 싶으면 sort후 reverse 하기
a.sort()
a.reverse()
print(a)
----------------------------------------------------------
(7, 6, 5, 4, 3, 2, 2, 1, 1)


#sorted -> return 값만 정렬된 값
#sort/reverse는 a를 직접 만짐
print(sorted(a))
print(a)
----------------------------------------------------------
(1, 1, 2, 2, 3, 4, 5, 6, 7)
(7, 6, 5, 4, 3, 2, 2, 1, 1)


#reversed -> return 값만 역순 값
print(list(reversed(a)) # reversed는 list로 형변환 해줘야함 이유는 제너레이터 배우고나서..
print(a)
----------------------------------------------------------
(1, 1, 2, 2, 3, 4, 5, 6, 7)
(7, 6, 5, 4, 3, 2, 2, 1, 1)