본문 바로가기
IT/Python

[코딩] 컬렉션 타입의 이해(list)

by icebear3000 2022. 11. 22.
반응형

리스트(List)
 복수개의 값을 담을 수 있는 데이터 구조이다. 실생활에서 사용하는 리스트(학생 리스트, 성적 리스트 등등)과 동일한 의미로 이해 가능하다.

 

리스트 초기화
 [] 안에 값을 담아서 생성가능하다.
- list() 함수로 생성
- str.split()함수로 생성

a=[]
print(a)

a=['korea',1,2,3,4]

list() 함수
 다른 데이터 타입을 리스트로 변환할 때도 사용한다.

a='hello world'
b=list(a)
print(b)

c= (1,2,3)
d=list(c)
print(d)

#output
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
[1, 2, 3]

string split 함수
 구분자로 구분되는 리스트를 반환한다.

a='hello world. nice weather'

a.split()

#output
['hello', 'world.', 'nice', 'weather']

리스트 indexing
 문자열의 인덱싱과 동일하게 동작한다.
- [] 연산자를 이용하여 항목 얻어오기
- [i] - i번째 원소를 반환
- i가 음수인 경우도 가능하며 마지막원소가 -1로 하여 앞으로 갈때마다 1씩 감소한다

a=[1,2,3,4,5,6]
print(a[2])
print(a[4])
print(a[-1])

#output
3
5
6

리스트 개별 아이템에 접근
 인덱스에 접근하여 값을 업데이트 가능하다. 이후배울 tuple과의 차이점이기도 하다.

- list - mutable (생성된 후에 변경 가능)
- tuple - immutable (생성된 후에 변경 불가능)

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

a[0]=100

print(a)

#output
[100, 2, 3, 4, 5]

리스트 slicing
 문자열 슬라이싱과 동일하게 동작한다. 슬라이싱의 결과 역시 list이다.

a=[1,2,3,4,5,6,7,8] 
print(a[4:7])
print(a[:7])
print(a[4:])
print(a[:])

#slicing
#start:end:increment

a[1:7:2]

#output
[5, 6, 7]
[1, 2, 3, 4, 5, 6, 7]
[5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[2, 4, 6]

list 멤버 함수
 생성된 리스트 객체에 동작하는 함수이다. 향후, 클래스와 멤버 함수 개념을 이해할 예정이다.

  1. append(): 리스트의 끝에 항목을 추가함
  2. extend(): 리스트를 연장, += 로도 가능함
  3. insert(): 리스트의 원하는 위치에 항목추가 가능. 앞에 인덱스를, 뒤에 아이템을 명시
  4. remove(): 값으로 항목 삭제
  5. pop(): 지우고자 하는 아이템을 반환 후, 삭제
  6. index(): 찾고자 하는 값의 인덱스 반환
  7. in 키워드: 리스트 내에 해당 값이 존재하는지 확인. value in [list], True, False 중 한가지로 반환
  8. sort(): 리스트 자체를 내부적으로 정렬
  9. sorted(): 리스트의 정렬된 복사본을 반환
a= [1,2,3,4,5,6,7,8,9]
a.append(10)
a    #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

-------------------------------------------------------------------------------------------------
a= [1,2,3,4,5]
b= [6,7,8,9]

a.append(b)
print(a) #[1, 2, 3, 4, 5, [6, 7, 8, 9]]

a.extend(b)
print(a)   #[1, 2, 3, 4, 5, [6, 7, 8, 9], 6, 7, 8, 9]

a+=b
print(a)   #[1, 2, 3, 4, 5, [6, 7, 8, 9], 6, 7, 8, 9, 6, 7, 8, 9]
a=[1,2,3,4,5]
a.insert(1,40)
a  #[1, 40, 2, 3, 4, 5]

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

a=[1,2,3,4,5]
a.remove(2)
b=[1,2,2,3,4,5]# 두개인 경우 먼저나온 값을 지움
b.remove(2)

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

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

a=[1,2,3,4,5]
d = a.pop(1) # index기준

print(a,d)   #[1, 3, 4, 5] 2

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

a=[2,4,6,7,10]
a.index(4)  #1

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

a=[2,4,6,7,10]
b=7

c = b in a
print(c)   #True

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

a=[3,5,3,7,8,5,54,13]
a.sort()
a  #[3, 3, 5, 5, 7, 8, 13, 54]

a.sort(reverse=True)
a   #[54, 13, 8, 7, 5, 5, 3, 3]

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

b = a.sort(reverse=True)
print(b)    #None

b= sorted(a)
print(b)    #[3, 3, 5, 5, 7, 8, 13, 54]

 

반응형

댓글