728x90
C와 C++, Java등의 언어에서는 =를 결합 연산자로 사용한다.
a = b = 1
b에 1을 대입하여 얻은 결과를 a에 대입하므로 a = b = 1이 될 수 있다.
그러나 파이썬에서는 =가 연산자가 아니다. 같은 코드를 파이썬에서 입력하면 오류가 발생한다.
파이썬에서는 리스트와 튜플 모두 배열을 의미한다. 리스트와 튜플을 자료구조 관점에서 배열로 이야기 할 수 있다.
빈 배열 판단하기
if x:
# x가 비어 있지 않으면(True) 실행
else:
# x가 비어 있으면(False) 실행
비교 연산자로 배열의 대소, 등가 관계 판단
print([1, 2, 3] == [1, 2, 3])
print([1, 2] < [1, 3])
print([1, 2, 3] <= [1, 2, 3])
print([1, 2] < [1, 2 ,3] < [1, 2, 3 ,4])
print([1, 2] < [1, 1])
True
True
True
True
False
원소수가 많은 경우, 원소수가 같아도 어느 원소의 값이 더 큰 경우 해당 배열이 큰 것으로 판단한다.
등가성 vs 동일성
파이썬의 등가성 비교는 ==
좌, 우변의 값이 같은지를 비교
동일성 비교는 is
좌, 우변의 값과 식별 번호가 모두 같은지 비교
리스트와 튜플의 공통점과 차이점
성질, 기능 | 리스트 | 튜플 |
값 변경 가능? | O | X |
딕셔너리의 key로 사용 가능? | X | O |
이터러블 한가? | O | O |
in, not in 연산자 사용 가능? | O | O |
덧셈 연산자 + 로 연결할 수 있는가? | O | O |
곱셈 연산자 *로 반복할 수 있는가? | O | X |
+=으로 연결 대입, 반복 대입 가능? | O | X |
인덱스 식 사용 가능? | O | X |
슬라이스식 사용 가능? | O | X |
len(), min(), max(), sum(), index(), count() 사용 가능? | O | O |
del(), append(), clear(), copy(), extend(), insert(), pop(), remove(), reverse() 사용 가능? | O | X |
내포 표기로 생성 가능? | O | X |
내포 표기 생성법
리스트 안에서 for, if 문을 사용해 새로운 리스트를 생성하는 기법
nums = [1, 2, 3, 4]
doubles = [num * 2 for num in nums if num % 2 == 1] # nums의 홀수 값을 2씩 곱한 리스트 생성
print(doubles)
[2, 6]
728x90
'파이썬 > 자료구조와 알고리즘' 카테고리의 다른 글
파이썬 자료구조/알고리즘 07 : 리스트와 튜플의 스캔과 역순으로 배열하기 (0) | 2022.02.07 |
---|---|
파이썬 자료구조/알고리즘 06 : 기본 자료구조, 배열3 (0) | 2022.02.06 |
파이썬 자료구조/알고리즘 04 : 기본 자료구조, 배열 (0) | 2022.01.22 |
파이썬 자료구조/알고리즘 03 : 파이썬과 C언어의 변수 저장 방식 차이 (0) | 2022.01.22 |
파이썬 자료구조/알고리즘 02 : 알고리즘 기초2 (0) | 2022.01.21 |