티스토리 뷰
* 튜플 : 함수와 함께 많이 사용되는 리스트와 비슷한 자료형. 리스트와 다른 점은 한번 결정된 요소는 바꿀 수 없음
* 람다 : 매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거롭고, 코드 공간 낭비라는 생각이 들 때 함수를 간단하고 쉽게 선언하는 방법
튜플
튜플은 리스트와 비슷한 자료형
그러나 리스트와 다른 점은 한번 결정된 요소를 바꿀 수 없다는 것.
다음과 같은 방법으로 생성함.
(데이터, 데이터, 데이터, ...)
튜플의 기본 사용 방법
>>> tuple_test = (10, 20, 30)
>>> tuple_test[0]
10
>>> tuple_test[1]
20
>>> tuple_test[2]
30
튜플과 리스트는 거의 차이가 없어보임. 하지만 요소를 변경할 때 차이가 있음
0번째 요소에 1을 넣으려고 하면 에러 발생. 튜플은 내부 요소 변경이 불가능함.
tuple_test[0] = 1
오류오류오류오류
튜플을 유용하게 사용하는 법
리스트와 튜플의 특이한 사용 : 리스트와 튜플을 사용하면 밑과 같은 형태로 변수를 선언하고 할당할 수 있음. 그런데 튜플은 특이한 성질이 있음. 괄호를 생략해도 튜플로 인식할 수 있는 경우는 괄호를 생략해도 됩니다.
# 리스트와 튜플의 특이한 사용
[a, b] = [10, 20]
(c, d) = (10, 20)
# 출력
print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)
</>
a: 10
b: 20
c: 10
d: 20
1) 괄호가 없는 튜플
편리함으로 인해 자주 사용되는 형태.
# 괄호가 없는 튜플
tuple_test = 10, 20, 30, 40
print("# 괄호가 없는 튜플의 값과 자료형 출력")
print("tuple_test:", tuple_test)
print("type(tuple_test):", type(tuple_test))
print()
# 괄호가 없는 튜플 활용
a, b, c = 10, 20, 30
print("# 괄호가 없는 튜플을 활용한 할당")
print("a:", a)
print("b:", b)
print("c:", c)
</>
# 괄호가 없는 튜플의 값과 자료형 출력
tuple_test: (10, 20, 30, 40)
type(tuple_test): <class 'tuple'>
# 괄호가 없는 튜플을 활용한 할당
a: 10
b: 20
c: 30
괄호가 없는 튜플의 편리함은 다음 코드로 확인할 수 있음. 변수의 값을 교환하는 프로그램
2) 변수의 값을 교환하는 튜플
a, b = b, a라는 코드만으로 값이 바뀜. 편리하게 사용할 수 있는 값 교환 방법이므로 알아두기!
a, b = 10, 20
print("# 교환전 값")
print("a:", a)
print("b:", b)
print()
# 값을 교환함
a, b = b, a
print("# 교환 후 값")
print("a:", a)
print("b:", b)
print()
</>
# 교환전 값
a: 10
b: 20
# 교환 후 값
a: 20
b: 10
3) 튜플과 함수
튜플은 함수의 리턴에 많이 사용함. 함수의 리턴에 튜플을 사용하면 여러 개의 값을 리턴하고 할당할 수 있기 때문.
튜플을 사용해 할당할 수 있다는 것을 깨달으면 아래 코드를 쉽게 이해할 수 있음.
# 함수 선언
def test():
return (10, 20)
# 여러 개의 값을 리턴 받음
a, b = test()
# 출력
print("a:", a)
print("b:", b)
</>
a: 10
b: 20
튜플도 리스트처럼 +와 * 연산자 등을 활용할 수 있음. 하지만 그런것들은 리스트로 작성하는 것과 큰 차이가 없어서 튜플을 사용하는 경우는 거의 없음. 괄호 없이 여러 값을 할당하는 것은 튜플만 할 수 있는 일!
'Language > PYTHON' 카테고리의 다른 글
함수 고급(3) 파일 처리 (0) | 2021.10.19 |
---|---|
함수 고급(2) 람다 (0) | 2021.10.18 |
함수의 활용(2) 메모화 / 조기리턴 / 코드 이름 / 코드 유지보수 (0) | 2021.10.09 |
함수의 활용(1) 재귀 함수 / 재귀 함수의 문제 / global 키워드 (0) | 2021.10.05 |
함수 만들기(3) 리턴 / 기본적인 함수의 활용 (0) | 2021.10.03 |
- Total
- Today
- Yesterday
- StringBuffer 클래스
- 역반복문
- not_in
- 문자열함수
- 프로그램
- IndexError
- 순환할당
- 포장 클래스
- 기본 API 클래스
- StringBuilder 클래스
- java.time.package
- 자료형
- 스레드 스케줄링
- Math 클래스
- 리스트
- Date 클래스
- FALSE
- 함수
- Format 클래스
- 리스트연산자
- Pattern 클래스
- 파이썬
- 딕셔너리
- Arrays 클래스
- Calendar 클래스
- python
- 요소선택
- Random 클래스
- Objects 클래스
- StringTokenizer 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |