회원 로그인
|
Python 6강 - 튜플
Python06.asf
Python 6강
튜플
1. 튜플의 연산
2. 패킹과 언패킹
3. 리스트와의 공통점, 차이점
4. 튜플이 사용되는 경우
5. 예들
1. 경로명 다루기
2. URL다루기
1. 튜플의 연산
# 튜플 만들기
>>> t = ()
>>> t = (1, 2, 3)
>>> t = 1, 2, 3 #위와 같다.
>>> t = (1,) #하지만 한개일 때는 꼭 ,를 붙인다. 왜냐하면 1이 숫자인지 튜플인지 표현하기 위함이다.
>>> T = (1)
>>> T
1
>>> T = (1,)
>>> T
(1,)
>>> (1) + 2
3
>>> r = (1,)
>>> r = 1,
#일반 연산
인덱싱, 슬라이싱, 반복, 연결, 길이, 멤버십테스트...
변경 불가능
사용 예 몇 가지...
2. 패킹과 언패킹
#패킹
한 튜플 안에 여러 데이터를 넣는 것
T = 1, 2, 'hello'
#언패킹
튜플에서 데이터를 분리해 내는 것
x, y, z = T
>>> x, y, z = 1, 2, 3 #1,2,3 값이 x,y,z에 언패킹
#패킹, 언패킹은 리스트에도 적용된다.
>>> L = [1, 2, 3]
>>> x, y, z = L
3. 리스트와의 공통점, 차이점
#공통점
임의의 객체를 저장한다.
시퀀스 자료형이다.
#차이점
변경 불가능
메쏘드를 갖지 않는다.
포맷 문자열 지원, 함수 호출시 가변 인수 지원 기능 등이 추가로 있다.
#일반적인 용도 차이
데이터가 변경될 경우 - 리스트
변경되지 않을 데이터를 표현할 경우 - 튜플
#상호 변환 가능
list(), tuple()
>>> def f(*args):
print args
>>> f(1) #튜플로 입력시킨다.
(1,)
>>> f(1, 2)
(1, 2)
>>> f(1, 2, 3)
(1, 2, 3)
>>> def printf(format, *args): #c언어의 printf 함수를 만들 수 있다.
print format % args
>>> printf("%d %fn", 12, 3.14)
12 3.140000
>>> T
(1, 2, 3)
>>> L = list(T) #튜플을 리스트로 변환
>>> L
[1, 2, 3]
>>> L[0] = 100
>>> L
[100, 2, 3]
>>> T = tuple(L) #리스트를 튜플로 변환
>>> T
(100, 2, 3)
4. 튜플이 사용되는 경우
#함수가 하나 이상의 값을 리턴하는 경우
>>> def calc(a, b):
return a+b, a*b #a+b, a*b와 같이 여러개의 리턴이 튜플이 된다.
>>> x, y = calc(5, 4)
#문자열 포매팅
>>> 'id:%s, name:%s' % ('arts', 'One')
#가변 인수 지원
>>> def f(*args):
print args
>>> f(1, 2, 3)
(1, 2, 3)
>>> f(1, 2, 4, 'spam', 'and', 'ham')
(1, 2, 4, 'spam', 'and', 'ham')
#그 이외, 고정된 값을 표현하기 위하여
5. 예들
#경로명 다루기(os.path)
os.path.abspath() - 상대경로를 절대경로로
>>> import os
>>> os.path.abspath('t.py')
'C:Python25t.py'
os.path.exists() - 파일의 존재 여부 검사
>>> os.path.exists('t.py') #없으면 False(0)
False
>>> os.path.exists('t.py') #있으면 True(1)
True
os.path.getsize() - 파일 크기 알아보기
>>> os.path.getsize('t.py') #byte
2450L
os.path.split() - head, tail 분리
>>> os.path.split('C:Python25t.py') #경로와 파일을 분리
('C:Python25', 't.py')
os.path.splitext() - 확장자 분리
>>> os.path.splitext('C:Python25t.py') #경로와 확장자를 분리
('C:Python25t', '.py')
#URL 다루기(urlparse 모듈)
urlparse() - url을 각 성분별로 분리
(addressing scheme, network location, path, parameters, query, fragment identifier)
>>> urlparse.urlparse('http://www.python.or.kr:8080/python/test.cgi;paramx&b=y#center')
('http', 'www.python.or.kr:8080', '/python/test.cgi', 'param', 'a=x&b=y', 'center')
(프로토콜, 사이트:포트, 경로, 파라메터, 질이어, 프래그먼트)
urlunparse() - url성분을 하나로 url로 역 변환
>>> t = list(p) #튜플을 리스트로 변환하고,
>>> t[-1] = 'left' #리스트의 마지막 값을 left로 변경
>>> t
['http', 'www.python.or.kr:8080', '/python/test.cgi', 'param', 'a=x&b=y', 'left']
>>> urlparse.urlunparse(t) #t의 값을 다시 url로 역 변환
'http://www.python.or.kr:8080/python/test.cgi;paramx&b=y#left'
urljoin(base, url) - 베이스 url과 상대 url을 연결하여 절대 url 생성
>>> b = 'http://www.python.or.kr/python' #url 연결
>>> urlparse.urljoin(b, 'index.html')
'http://www.python.or.kr/index.html'
>>> b = 'http://www.python.or.kr/python/' #마지막 /로 폴더를 베이스로 인식
>>> urlparse.urljoin(b, 'index.html')
'http://www.python.or.kr/python/index.html'
>>> b = 'http://www.python.or.kr/python/a.html' #/python/까지 베이스로 인식
>>> urlparse.urljoin(b, 'index.html')
'http://www.python.or.kr/python/index.html'
Python06.asf 끝
Python 6강
튜플
1. 튜플의 연산
2. 패킹과 언패킹
3. 리스트와의 공통점, 차이점
4. 튜플이 사용되는 경우
5. 예들
1. 경로명 다루기
2. URL다루기
1. 튜플의 연산
# 튜플 만들기
>>> t = ()
>>> t = (1, 2, 3)
>>> t = 1, 2, 3 #위와 같다.
>>> t = (1,) #하지만 한개일 때는 꼭 ,를 붙인다. 왜냐하면 1이 숫자인지 튜플인지 표현하기 위함이다.
>>> T = (1)
>>> T
1
>>> T = (1,)
>>> T
(1,)
>>> (1) + 2
3
>>> r = (1,)
>>> r = 1,
#일반 연산
인덱싱, 슬라이싱, 반복, 연결, 길이, 멤버십테스트...
변경 불가능
사용 예 몇 가지...
2. 패킹과 언패킹
#패킹
한 튜플 안에 여러 데이터를 넣는 것
T = 1, 2, 'hello'
#언패킹
튜플에서 데이터를 분리해 내는 것
x, y, z = T
>>> x, y, z = 1, 2, 3 #1,2,3 값이 x,y,z에 언패킹
#패킹, 언패킹은 리스트에도 적용된다.
>>> L = [1, 2, 3]
>>> x, y, z = L
3. 리스트와의 공통점, 차이점
#공통점
임의의 객체를 저장한다.
시퀀스 자료형이다.
#차이점
변경 불가능
메쏘드를 갖지 않는다.
포맷 문자열 지원, 함수 호출시 가변 인수 지원 기능 등이 추가로 있다.
#일반적인 용도 차이
데이터가 변경될 경우 - 리스트
변경되지 않을 데이터를 표현할 경우 - 튜플
#상호 변환 가능
list(), tuple()
>>> def f(*args):
print args
>>> f(1) #튜플로 입력시킨다.
(1,)
>>> f(1, 2)
(1, 2)
>>> f(1, 2, 3)
(1, 2, 3)
>>> def printf(format, *args): #c언어의 printf 함수를 만들 수 있다.
print format % args
>>> printf("%d %fn", 12, 3.14)
12 3.140000
>>> T
(1, 2, 3)
>>> L = list(T) #튜플을 리스트로 변환
>>> L
[1, 2, 3]
>>> L[0] = 100
>>> L
[100, 2, 3]
>>> T = tuple(L) #리스트를 튜플로 변환
>>> T
(100, 2, 3)
4. 튜플이 사용되는 경우
#함수가 하나 이상의 값을 리턴하는 경우
>>> def calc(a, b):
return a+b, a*b #a+b, a*b와 같이 여러개의 리턴이 튜플이 된다.
>>> x, y = calc(5, 4)
#문자열 포매팅
>>> 'id:%s, name:%s' % ('arts', 'One')
#가변 인수 지원
>>> def f(*args):
print args
>>> f(1, 2, 3)
(1, 2, 3)
>>> f(1, 2, 4, 'spam', 'and', 'ham')
(1, 2, 4, 'spam', 'and', 'ham')
#그 이외, 고정된 값을 표현하기 위하여
5. 예들
#경로명 다루기(os.path)
os.path.abspath() - 상대경로를 절대경로로
>>> import os
>>> os.path.abspath('t.py')
'C:Python25t.py'
os.path.exists() - 파일의 존재 여부 검사
>>> os.path.exists('t.py') #없으면 False(0)
False
>>> os.path.exists('t.py') #있으면 True(1)
True
os.path.getsize() - 파일 크기 알아보기
>>> os.path.getsize('t.py') #byte
2450L
os.path.split() - head, tail 분리
>>> os.path.split('C:Python25t.py') #경로와 파일을 분리
('C:Python25', 't.py')
os.path.splitext() - 확장자 분리
>>> os.path.splitext('C:Python25t.py') #경로와 확장자를 분리
('C:Python25t', '.py')
#URL 다루기(urlparse 모듈)
urlparse() - url을 각 성분별로 분리
(addressing scheme, network location, path, parameters, query, fragment identifier)
>>> urlparse.urlparse('http://www.python.or.kr:8080/python/test.cgi;paramx&b=y#center')
('http', 'www.python.or.kr:8080', '/python/test.cgi', 'param', 'a=x&b=y', 'center')
(프로토콜, 사이트:포트, 경로, 파라메터, 질이어, 프래그먼트)
urlunparse() - url성분을 하나로 url로 역 변환
>>> t = list(p) #튜플을 리스트로 변환하고,
>>> t[-1] = 'left' #리스트의 마지막 값을 left로 변경
>>> t
['http', 'www.python.or.kr:8080', '/python/test.cgi', 'param', 'a=x&b=y', 'left']
>>> urlparse.urlunparse(t) #t의 값을 다시 url로 역 변환
'http://www.python.or.kr:8080/python/test.cgi;paramx&b=y#left'
urljoin(base, url) - 베이스 url과 상대 url을 연결하여 절대 url 생성
>>> b = 'http://www.python.or.kr/python' #url 연결
>>> urlparse.urljoin(b, 'index.html')
'http://www.python.or.kr/index.html'
>>> b = 'http://www.python.or.kr/python/' #마지막 /로 폴더를 베이스로 인식
>>> urlparse.urljoin(b, 'index.html')
'http://www.python.or.kr/python/index.html'
>>> b = 'http://www.python.or.kr/python/a.html' #/python/까지 베이스로 인식
>>> urlparse.urljoin(b, 'index.html')
'http://www.python.or.kr/python/index.html'
Python06.asf 끝
댓글 0개
| 엮인글 0개
285개(14/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
25 | [VisualStudio] Visual Studio Express 2012 다운로드/설치 | 푸딩뱃살 | 2730 | 2013.04.06 20:12 |
24 | [Python] DC 이효리 겔러리에서 사진 추출하기 | artsOne | 934 | 2009.03.27 01:54 |
23 | [Python] 클래스 안의 함수 실행 | artsOne | 2544 | 2012.09.20 11:54 |
22 | [Python] 기본 함수들 | artsOne | 4881 | 2012.09.12 15:39 |
21 | [Python] Config Parser | artsOne | 2264 | 2012.08.28 13:55 |
20 | [Python] win32 오픈오피스 실행 | artsOne | 2154 | 2012.08.01 17:38 |
19 | [Python] 문자열의 기호들을 출력하기 | artsOne | 2867 | 2009.04.17 11:59 |
18 | [Python] python 자료형 / 자료형 출력 | artsOne | 3393 | 2009.03.30 00:54 |
17 | [Python] win32 모듈로 Excel 사용하기 | artsOne | 4113 | 2008.03.18 02:24 |
16 | [Python] 용어 정리 | artsone | 3563 | 2008.02.26 23:11 |
15 | [Python] Python 9강 - 파일 | artsone | 9962 | 2007.11.03 02:59 |
14 | [Python] Python 8강 - 객체의 복사 및 형 변환 | artsone | 5217 | 2007.11.01 04:15 |
13 | [Python] Python 7강 - 사전 | artsone | 2870 | 2007.10.30 03:26 |
>> | [Python] Python 6강 - 튜플 | artsone | 3138 | 2007.10.24 05:30 |
11 | [Python] Python 5강 - 리스트 | artsone | 7338 | 2007.10.23 22:13 |
10 | [Python] Python 4강 - 문자열 | artsone | 3700 | 2007.10.20 03:04 |
9 | [Python] Python 3강 - 수치 자료형과 연산자 | artsone | 4196 | 2007.10.18 17:01 |
8 | [Python] Python 2강 - 파이썬 문과 기본 자료형 | artsone | 5314 | 2007.10.15 02:25 |
7 | [Python] Python 1강 - 파이썬이란? | artsOne | 3418 | 2007.10.11 23:36 |
6 | [Python] [스크랩] Python은 무엇인가? | artsone | 1998 | 2008.02.26 16:20 |