study with Q - 파이썬

28 - 리스트의 함수

quaquaz 2024. 3. 27. 22:33

#파괴적 연산과 비파괴적 연산

  • 파괴적 연산
    • 연산 후에 피연산자가 변형되는 것
    • e.g. 할당 연산자 =
    • 원본이 파괴되기 때문에 메모리를 많이 차지하지 않음
    • 리스트는 크기가 클 가능성이 높으므로 파괴적 연산을 사용함
  • 비파괴적 연산
    • 연산 후에 피연산자가 변형되지 않는 것
    • e.g. 연산자 +-*/
    • 비파괴적 연산은 결과를 저장하기 위해 할당 연산자를 함께 사용해야 함
    • 장점) 원본과 결과가 모두 남기 때문에 안전함
    • 단점) 원본과 결과를 둘 다 남기기 때문에 메모리를 많이 차지함

 

#요소 추가

: append(), insert(), extend()

  • append(요소) : 리스트 가장 뒤에 요소 추가
l = [1,2,3,4,5]
l.append(6)
print(l)
>>> [1, 2, 3, 4, 5, 6]

 

  • insert(n번째 index, 요소) : 리스트 중간에 요소 추가
l = [1,2,3,4,5,6]
l.insert(3, "pi")
l.insert(4, "coin")
print(l)
>>>[1, 2, 3, 'pi', 'coin', 4, 5, 6]
  • extend([리스트]): 리스트 가장 뒤에 여러 개 요소 추가
    • +연산자와 차이 :  extend()는 파괴적으로 동작하고 +연산자는 비파괴적으로 동작한다
l = [1, 2, 3, 4, 5, 6]
l.extend(["end", "false", "."])
print(l)
>>> [1, 2, 3, 4, 5, 6, 'end', 'false', '.']

 

 

#요소 제거

: del, pop(), remove(), clear()

  • del l[인덱스] : 제거하고 싶은 인덱스 입력
l = [1,2,3,3.14,4,5]
del l[3]
print(l)
>>>[1, 2, 3, 4, 5]
  • pop(인덱스) : 제거하고 싶은 인덱스 입력
l2 = ["쥬쥬", "레오", "토리", "바울이", "아토"]
l2.pop(1)
print(l2)
>>>['쥬쥬', '토리', '바울이', '아토']

 

  • remove(요소) : 제거하고 싶은 요소 입력
l3 = [2,4,6,8,16,32,64]
l3.remove(6)
print(l3)
>>>[2, 4, 8, 16, 32, 64]
  • clear(): 모든 요소를 제거
lf = [1,2,4,6,8,16,32,64,1024]
del lf[0]
print(lf)
>>> [2, 4, 6, 8, 16, 32, 64, 1024]

lf.pop(2)
print(lf)
>>> [2, 4, 8, 16, 32, 64, 1024]

lf.remove(1024)
print(lf)
>>> [2, 4, 8, 16, 32, 64]

lf.clear()
print(lf)
>>> []

 

#요소 정렬

:sort()

  • sort(): 오름차순으로 출력
  • sort(reverse=True): 내림차순으로 출력
ls = [273, 9, 81, 27, 3, 3, 81]
ls.sort()
print(ls)
>>> [3, 3, 9, 27, 81, 81, 273]
ls.sort(reverse=True)
print(ls)
>>> [273, 81, 81, 27, 9, 3, 3]

 

#요소 존재를 확인

: in, not in

ls = [273, 9, 81, 27, 3, 3, 81]

print(81 in ls)
>>> True

print(32 in ls)
>>>False

print(273 not in ls)
>>> False

print(32 not in ls)
>>> True

 

#뭔가 패러독스를 만들고 싶은데 생각이 안나네

더보기
false = ["True", "True", "True", "True"]
true = ["False", "False", "False", "False"]

print("True" not in true)
>>> True
print("False" in false)
>>> False