IT_Python

[파이썬기초] 리스트 ( list ) (2). 추가,삭제,검색,정렬. append/extend/insert/remove/pop/index/in/sort/sorted

soyounism 2021. 12. 9. 10:15

list 멤버 함수

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

 

  • append()
    • 리스트의 끝에 항목을 추가
a = [1, 2, 3, 4, 5]
a.append(10)  #맨끝에 추가됨

print(a)

결과:

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

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


a.append(b)#b자체가 리스트로 a에 추가된
print(a)

print(a[5])​
 
결과:
[1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]
[6, 7, 8, 9, 10]
 
 
  • extend()
    • 리스트를 연장
    • += 로도 가능함. +리스트 형식
#리스트를 연산하고 싶다면
#append 말고 extend

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

a.extend(b)
print(a)
 
결과:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
 
* +로 연산
#다른방법으로 

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


a += b
print('+로 연산', a)
 
결과:
+로 연산 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

  • insert()로 항목추가
    • 리스트의 원하는 위치에 추가 가능 (append는 끝에만 추가가 가능했는데)
    • 앞에 인덱스를, 뒤에 값을 명시
    • a.insert(인덱스, 값)
a = [1, 3, 4, 5, 6]
a.insert(1, 40) #1번 인덱스자리에 40값 추가

print(a)

 결과:

[1, 40, 3, 4, 5, 6]
 
 
  • remove()
    • 값으로 항목 삭제
a = [1, 2, 30, 30, 4, 5]
a.remove(30)  #30값을 지운다
print(a) #중복되어있을때는 가장 앞에꺼 하나만 지운다
 
 결과:
[1, 2, 30, 4, 5]
 
 
  • pop()
    • 지우고자 하는 아이템을 반환 후, 삭제
    • remove는 값으로 지우지만, pop은 인덱스로 지움
a = [1, 2, 3, 4, 5]
#d1=a.pop()
d=a.pop(2) #인덱스를 쓰지않으면 끝에 값이 지워짐
print(a)

b = [1, 2, 3, 4, 5]
c=b.pop(2)  #값을 지우면서 그 지운값을 반환도 가능
print(c)
print(b)
#지워진 값이 필요하다면 변수를 통해 담을수있음
 
결과:
[1, 2, 4, 5]
3
[1, 2, 4, 5]

 

  • index()
    • 찾고자 하는 값의 인덱스 반환
a = [2, 6, 7, 9, 10]
a.index(9) #9의 인덱스는 3번 자리인덱스

 결과:

3

 

* 참고! a. '+tab'을 누르면 list에서 쓸 수 있는 함수들이 다 나옴

 

 

  • in 키워드
    • 리스트 내에 해당 값이 존재하는지 확인
    • value in [list]
    • True, False 중 한가지로 반환
a = [1, 2, 3, 4, 5, 10]
b = 7

c = b in a # a안에 b가 있냐없냐. 없죠. False

d=10
e=d in a #있죠

print(c)
print(e)

 결과:

False

True

 

  • list 정렬
    • sort() -> 리스트 자체를 내부적으로 정렬
    • sorted() -> 리스트의 정렬된 복사본을 반환
a = [9, 10, 7, 19, 1, 2, 20, 21, 7, 8]
a.sort(reverse=True) #내림차순. ()비워두면 오름차순

b = sorted(a)  #내림차순하려면 b= sorted(a, reverse=True)
print(a) #a자체가 변경
print(b) #a는 그대로 있고 정렬된걸 새로운 b에 담기

 결과:

[21, 20, 19, 10, 9, 8, 7, 7, 2, 1]

[1, 2, 7, 7, 8, 9, 10, 19, 20, 21]