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