SlideShare a Scribd company logo
1 of 49
Download to read offline
PythonIntermediateProgramming
임찬식(chanshik@gmail.com)
1
PythonIntermediateProgramming
타입과 객체
함수와함수형프로그래밍
클래스와객체지향프로그래밍
데이터구조
튜닝과 최적화
2
데이터구조
프로그램을작성할때도움이되는효율적인데이터구조모듈소개
array
bisect
collections
itertools
3
abc
abc모듈은새로운추상기반클래스를정의하는데사용하는
메타클래스와장식자한쌍을가지고 있음
ABCMeta
추상기반클래스를나타내는메타클래스
Python3
>>> import abc
>>> class Stackable(metaclass=abc.ABCMeta):
... pass
Python2
class Stackable:
__metaclass__ = abc.ABCMeta
4
abc
추상기반클래스의특징
abstracemethod, abstractproperty 장식자를사용하여
메서드나프로퍼티를정의하면실제구현을제공할경우에만
인스턴스생성가능
어떤타입을논리적하위클래스로등록하는데사용하는클래스메서드
register(subclass) 를가지고 있음
__subclasshook__(cls, subclass) 를추가로정의가능
타입subclass 가 하위클래스로간주되면True
subclass 가 하위클래스가 아니면False
아무런정보가 없을경우NotImplemented예외를발생
5
abc
abstractmethod(method)
method를추상메서드로선언하는장식자
직접상속을통해정의한파생클래스에서실제구현을제공해야
인스턴스생성가능
register() 메서드로등록한하위클래스에는영향없음
abstractproperty(fget [, fset [, fdel[, doc]]])
추상프로퍼티를생성
매개변수들은일반property() 함수와동일
파생클래스에서는해당프로퍼티구현을제공해야인스턴스생성가능
6
abc
추상기반클래스정의
>>> from abc import ABCMeta, abstractmethod, abstractproperty
>>> class Stackable(metaclass=ABCMeta):
... @abstractmethod
... def push(self, item):
... pass
... @abstractmethod
... def pop(self):
... pass
... @abstractproperty
... def size(self):
... pass
7
abc
Stackable을상속하여클래스생성
>>> class Stack(Stackable):
... def __init__(self):
... self.items = []
... def push(self, item):
... self.items.append(item)
... def pop(self):
... return self.items.pop()
...
>>> a = Stack()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class Stack with
abstract methods size
size() 프로퍼티가 없어인스턴스를생성할수없음
8
abc
size() 프로퍼티를Stack에서상속받은클래스에추가
>>> class CompleteStack(Stack):
... @property
... def size(self):
... return len(self.items)
...
>>> s = CompleteStack()
>>> s.push("foo")
>>> s.push("bar")
>>> s.size
2
>>> s.pop()
'bar'
9
array
한종류의타입만담는객체. 공간 효율적인자료구조
array(typecode, [, initializer])
타입코드목록
코드 설명 C 타입 크기
'b' 8비트정수 signedchar 1
'B' 8비트부호없는정수 unsignedchar 1
'u' 유니코드문자 PY_UNICODE 2 / 4
'h' 16비트정수 short 2
'H' 16비트부호없는정수 unsignedshort 2
정수형은머신아키텍처에의해결정
10
array
코드 설명 C 타입 크기
'i' 정수 int 4 / 8
'I' 부호없는정수 unsignedint 4 / 8
'l' 긴 정수 long 4 / 8
'L' 부호없는긴 정수 unsignedlong 4 / 8
'q' 더욱긴 정수 longlong 8 (Python3.3)
'Q' 부호없는더욱긴 정수 unsignedlonglong 8 (Python3.3)
'f' 단일정밀도실수 float 4
'd' 배정밀도실수 double 8
11
array
array 객체와생성기 표현식을이용한데이터생성
>>> import array
>>> a = array.array("i", [1, 2, 3, 4, 5])
>>> b = array.array(a.typecode, (x * x for x in a))
>>> a
array('i', [1, 2, 3, 4, 5])
>>> b
array('i', [1, 4, 9, 16, 25])
12
array
enumerate() 함수를이용한제자리(in‑place) 연산을통해
공간을절약하는방식의프로그래밍활용
>>> for i, x in enumerate(a):
... a[i] = x * x
...
>>> a
array('i', [1, 4, 9, 16, 25])
13
bisect
bisect 모듈은리스트를정렬된순서로유지하는데필요한기능제공
bisect(list, item [, low [, high]])
insort(list, item [, low [, high]])
bisect(): list 를정렬된순서로유지하기 위해서item을
list 어디에삽입해야하는지위치반환
insort(): item을list 에정렬된순서에맞게 삽입
item이이미존재하면기존항목오른쪽에삽입
14
bisect
>>> from bisect import bisect
>>> grades = "FEDCBA"
>>> breakpoints = [30, 44, 66, 75, 85]
>>> grades[bisect(breakpoints, 50)]
'D'
>>> grades[bisect(breakpoints, 90)]
'A'
15
bisect
>>> from bisect import insort
>>> l = [10, 30, 50, 70]
>>> insort(l, 60)
>>> l
[10, 30, 50, 60, 70]
>>> insort(l, 40)
>>> l
[10, 30, 40, 50, 60, 70]
16
collections
유용한컨테이너타입에대한고성능구현함수와
다양한컨테이너를위한추상기반클래스등을제공
deque
defaultdict
namedtuple
17
deque
양끝을가진객체를나타내는컨테이너
>>> from collections import deque
>>> d = deque('hello')
>>> d.pop()
'o'
>>> d.pop()
'l'
>>> d
deque(['h', 'e', 'l'])
>>> d.append('a')
>>> d.append('b')
>>> d.appendleft('c')
>>> d.appendleft('d')
>>> d
deque(['d', 'c', 'h', 'e', 'l', 'a', 'b'])
>>> d.popleft()
'd'
>>> d.popleft()
'c'
>>> d
deque(['h', 'e', 'l', 'a', 'b'])
18
deque
deque를생성할때maxlen인수를지정하면정해진크기를가진
원형버퍼로동작
새로운항목을추가하는데공간이부족하면반대편에있는항목삭제
deque([1, 2, 3], maxlen=5)
>>> d.append(4)
>>> d.append(5)
>>> d
deque([1, 2, 3, 4, 5], maxlen=5)
>>> d.append(6)
>>> d.append(7)
>>> d
deque([3, 4, 5, 6, 7], maxlen=5)
19
deque
deque는매우효율적인자료구조
뒤쪽끝에항목을추가하는작업은list 보다약간 느림
하지만, 앞쪽에항목을추가하는작업은list 보다매우빠름
deque에새로운항목을추가하는작업은스레드에서도안전
pickle모듈로직렬화가능
20
defaultdict
없는키를처리하는부분을제외하고는dict 와동일
키를찾지못하는경우에default_factory 로지정한함수호출
함수는기본값을생성하고 이값을해당키의값으로사용
defaultdict 객체는데이터를추적하기 위해서
사전을컨테이너로쓸때매우유용
21
defaultdict
>>> from collections import defaultdict
>>> s = "yeah but no but yeah but no but yeah"
>>> words = s.split()
>>> word_locations = defaultdict(list)
>>> for n, w in enumerate(words):
... word_locations[w].append(n)
...
>>> word_locations
defaultdict(<class 'list'>, {'yeah': [0, 4, 8],
'but': [1, 3, 5, 7], 'no': [2, 6]})
22
이름있는튜플
튜플을사용할때불편한점은개별항목을숫자로만접근할수있다는것
이러한불편을줄이기 위해이름있는튜플(namedtuple)을제공
namedtuple(typename, fieldnames [, verbose])
이름이typename인tuple하위클래스생성
fieldnames 는속성이름목록지정
유효한파이썬식별자여야함
튜플에나타날항목과 동일한순서로지정
23
이름있는튜플
>>> from collections import namedtuple
>>> NetworkAddr = namedtuple("NetworkAddr", "hostname port")
>>> a = NetworkAddr("www.python.org", 80)
>>> a.hostname
'www.python.org'
>>> a.port
80
>>> type(a)
<class '__main__.NetworkAddr'>
>>> len(a)
2
>>> isinstance(a, tuple)
True
24
이름있는튜플
이름있는튜플은데이터구조로만사용될객체를정의할때유용
name, shares, price변수를가진데이터구조가 필요할경우
>>> Stock = namedtuple("Stock", "name shares price")
>>> a = Stock("APL", 30, 45.50)
>>> a
Stock(name='APL', shares=30, price=45.5)
25
heapq
heapq 모듈은힙(heap)으로우선순위큐를구현
힙조건에따라정렬된항목들의리스트
heap[0] 은항상가장작은항목을담고 있음
0 에서시작하는모든n에대해서
heap[n] <= heap[2 * n+ 1]
heap[n] <= heap[2 * n+ 2] 모두만족
26
heapq
heapify(x)
리스트x 를제자리에서힙으로변환
heappop(heap)
힙조건을유지하면서가장작은항목을반환하고 제거
힙이비어있으면IndexError 발생
heappush(heap, item)
힙조건을유지하면서item을힙에추가
heappushpop(heap, item)
item을힙에추가하고 힙에서가장작은항목을제거하는
동작을한번에수행
27
heapq
heapreplace(heap, item)
힙에서가장작은아이템을반환하고 제거하면서
새로운항목item을추가
힙이비어있으면IndexError 발생
merge(s1, s2, ...)
정렬된반복가능한객체s1, s2 등을하나의정렬된순서열로생성
nlargest(n, iterable[, key])
iterable에있는가장큰n개의항목으로구성된리스트생성
nsmallest(n, iterable[, key])
iterable에있는가장작은n개의항목으로구성된리스트생성
28
heapq
>>> l = [19, 9, 4, 10, 11, 8, 2]
>>> heapq.heapify(l)
>>> l
[2, 9, 4, 10, 11, 8, 19]
>>> heapq.heappop(l)
2
>>> l
[4, 9, 8, 10, 11, 19]
>>> heapq.heappop(l)
4
>>> l
[8, 9, 19, 10, 11]
>>> heapq.heappush(l, 5)
>>> l
[5, 9, 8, 10, 11, 19]
>>> heapq.heappush(l, 25)
>>> l
[5, 9, 8, 10, 11, 19, 25]
>>>
29
heapq
>>> heapq.nlargest(3, l)
[25, 19, 11]
>>> heapq.nsmallest(3, l)
[5, 8, 9]
>>> a = [3, 5, 1, 9, 7]
>>> b = [6, 4, 8, 2, 10]
>>> heapq.heapify(a)
>>> heapq.heapify(b)
>>> h = heapq.merge(a, b)
>>> h.__next__()
1
>>> h.__next__()
2
>>> h.__next__()
4
>>> h.__next__()
5
30
itertools
itertools 모듈은데이터에대해서다양한본복을수행하는데
사용할수있는효율적인반복자를생성하는함수들을제공
모듈에있는모든함수는for 문이나기타반복자와관련있는
함수와함께사용할수있는반복자를반환
31
chain
chain(iter1, inter2, ..., interN)
반복자그룹이주어질때모든반복자를연결하는새로운반복자생성
>>> for x in chain([1, 2, 3], [4, 5, 6]):
... print(x)
...
1
2
3
4
5
6
32
combinations
combinations(iterable, r)
iterable에서길이r 인모든하위순서열을반환하는반복자생성
>>> list(combinations([1, 2, 3, 4], 2))
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
>>> list(combinations([1, 2, 3, 4], 3))
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
33
count
count([n])
n에서시작하는연속적인정수를만드는반복자생성
n을생략하면0 에서시작
sys.maxint 를넘으면‑sys.maxint ‑ 1 에서다시시작
>>> g = count()
>>> g.__next__()
0
>>> g.__next__()
1
>>> g.__next__()
2
>>> g.__next__()
3
34
cycle
cycle(iterable)
iterable에있는원소들을계속해서순환하는반복자생성
>>> g = cycle([1, 2, 3, 4])
>>> g.__next__()
1
>>> g.__next__()
2
>>> g.__next__()
3
>>> g.__next__()
4
>>> g.__next__()
1
>>> g.__next__()
2
35
dropwhile
dropwhile(predicate, iterable)
함수predicate(item) 이True로평가되는동안
iterable에서항목을버리는반복자생성
일단predicate가 False를반환하면해당항목과
iterable에있는나머지항목이생성
>>> s = [10, 20, -3, 5, 3, 6, -5, 7, 15]
>>> list(dropwhile(lambda x: x >= 0, s))
[-3, 5, 3, 6, -5, 7, 15]
36
groupby
groupby(iterable [, key])
iterable에서생성되는연속적인항목을그룹짓는반복자생성
그룹을짓기 위해중복된항목검색
iterable에서동일한항목이여러번나오면그룹이생성
>>> g = groupby("aaaabbccddeeefffgg")
>>> g.__next__()
('a', <itertools._grouper object at 0x10673cd30>)
>>> g.__next__()
('b', <itertools._grouper object at 0x10673ccf8>)
>>> g.__next__()
('c', <itertools._grouper object at 0x10673ce80>)
37
ifilter (Python3: filter)
ifilter(predicate, iterable)
iterable에서predicate(item) 이True인항목만추출하는반복자생성
predicate가 None이면iterable에있는모든항목이True로평가
>>> s = [10, 15, -3, 5, -6, 7, 15]
>>> g = filter(lambda x: x < 0, s)
>>> list(g)
[-3, -6]
38
ifilterfalse(Python3: filterfalse)
ifilterfalse(predicate, iterable)
iterable에서predicate(item) 이False인항목만추출하는반복자생성
predicate가 None이면iterable에있는모든항목이False로평가
>>> from itertools import filterfalse
>>> s = [10, 15, -3, 5, -6, 7, 15]
>>> g = filterfalse(lambda x: x < 0, s)
>>> list(g)
[10, 15, 5, 7, 15]
39
imap (Python3: map)
imap(function, iter1, iter2, ..., iterN)
function(i1, i2, ..., iN) 들을수행하는반복자생성
>>> a = [1, 2, 4, 10]
>>> b = [5, 10, 15, 20]
>>> m = map(lambda x, y: x + y, a, b)
>>> list(m)
[6, 12, 19, 30]
>>> m = map(lambda x, y: x + y, a, b)
>>> m.__next__()
6
40
islice
islice(iterable, [start,] stop [, step])
iterable[start:stop:step]이반환한것과 비슷한항목을추출하는반복자생성
>>> s = [10, 15, -3, 5, -6, 7, 15]
>>> g = islice(s, 4)
>>> g.__next__()
10
>>> g.__next__()
15
>>> g.__next__()
-3
>>> g.__next__()
5
>>> g.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
41
izip (Python3: zip)
izip(iter1, iter2, ... iterN)
(iter1, iter2, ..., iterN) 등묶어서사용할수있게 해주는반복자생성
주어진반복자중하나라도값을더이상생성하지않으면반복을멈춤
>>> a = [1, 3, 5, 7]
>>> b = [2, 4, 6, 8]
>>> c = [3, 5, 7]
>>> g = zip(a, b, c)
>>> g.__next__()
(1, 2, 3)
>>> g.__next__()
(3, 4, 5)
>>> g.__next__()
(5, 6, 7)
>>> g.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
42
izip_longest (Python3: zip_longest)
izip_longest(iter1, iter2, ..., iterN [,fillvalue=None])
반복자iter1, iter2, iterN 등을모두소진할때까지반복이이어진다는것을
제외하고는izip() 과 동일
>>> g = zip_longest(a, b, c)
>>> g.__next__()
(1, 2, 3)
>>> g.__next__()
(3, 4, 5)
>>> g.__next__()
(5, 6, 7)
>>> g.__next__()
(7, 8, None)
>>> g.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
43
permutaions
permutations(iterable [, r])
iterable에서길이r 인모든순열을반환하는반복자생성
r 을생략하면iterable에있는항목수와동일한길이로가정
>>> a = [1, 3, 5, 7]
>>> permutations(a, 2)
<itertools.permutations object at 0x1066c4f10>
>>> list(permutations(a, 2))
[(1, 3), (1, 5), (1, 7), (3, 1), (3, 5), (3, 7),
(5, 1), (5, 3), (5, 7), (7, 1), (7, 3), (7, 5)]
44
product
product(iter1, iter2, ... iterN [, repeat=1])
iter1, iter2 등에있는항목들의데카르트곱(Cartesianproduct)을
나타내는튜플을만들어내는반복자생성
>>> a = [1, 3, 5, 7]
>>> b = [2, 4]
>>> product(a, b)
<itertools.product object at 0x106742558>
>>> list(product(a, b))
[(1, 2), (1, 4), (3, 2), (3, 4), (5, 2), (5, 4), (7, 2), (
45
repeat
repeat(object [, times])
object 를계속해서만드는반복자를생성
times: 반복횟수(times 가 없으면끝없이반복)
>>> g = repeat([1, 3, 5], 4)
>>> g.__next__()
[1, 3, 5]
>>> g.__next__()
[1, 3, 5]
>>> g.__next__()
[1, 3, 5]
>>> g.__next__()
[1, 3, 5]
>>> g.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
46
starmap
starmap(func [, iterable)
func(*item) 들을만들어내는반복자생성
item은iterable에서가져옴
func() 을제대로호출할수있는iterable에대해서만제대로동작
>>> g = starmap(lambda a, b: a * b, [(1, 2), (2, 3), (3, 4
>>> g.__next__()
2
>>> g.__next__()
6
>>> g.__next__()
12
>>> g.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
47
takewhile
takewhile(predicate [, iterable])
predicate(item) 이True로평가되는동안iterable에서항목을추출하는
반복자생성
predicate가 False로평가되는즉시반복을멈춤
>>> s = [10, 15, -3, 5, -6, 7, 15]
>>> g = takewhile(lambda x: x >= 0, s)
>>> g.__next__()
10
>>> g.__next__()
15
>>> g.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
48
tee
tee(iterable [, n])
iterable에서n개의독립적인반복자생성
생성된반복자들은n개 항목튜플로반환
n: 기본값은2
>>> s = [10, 15, -3, 5, -6, 7, 15]
>>> g = tee(s)
>>> g[0].__next__()
10
>>> g[0].__next__()
15
>>> g[1].__next__()
10
>>> g[1].__next__()
15
49

More Related Content

What's hot

Dependency injection presentation
Dependency injection presentationDependency injection presentation
Dependency injection presentationAhasanul Kalam Akib
 
Test Driven Development With Python
Test Driven Development With PythonTest Driven Development With Python
Test Driven Development With PythonSiddhi
 
Cours javascript
Cours javascriptCours javascript
Cours javascriptkrymo
 
Retour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRetour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRomainKuzniak
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocompleteMu Chun Wang
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖Philip Zheng
 
OO Design and Design Patterns in C++
OO Design and Design Patterns in C++ OO Design and Design Patterns in C++
OO Design and Design Patterns in C++ Ganesh Samarthyam
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
기업혁신을 위한 클라우드 여정
기업혁신을 위한 클라우드 여정기업혁신을 위한 클라우드 여정
기업혁신을 위한 클라우드 여정Youngwhun Lee
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf정민 안
 
Keyword Driven Testing
Keyword Driven TestingKeyword Driven Testing
Keyword Driven TestingMaveryx
 
Dependency injection in Java, from naive to functional
Dependency injection in Java, from naive to functionalDependency injection in Java, from naive to functional
Dependency injection in Java, from naive to functionalMarian Wamsiedel
 
SOLID Principles and Design Patterns
SOLID Principles and Design PatternsSOLID Principles and Design Patterns
SOLID Principles and Design PatternsGanesh Samarthyam
 
TDD Flow: The Mantra in Action
TDD Flow: The Mantra in ActionTDD Flow: The Mantra in Action
TDD Flow: The Mantra in ActionDionatan default
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communicationmsaindane
 

What's hot (20)

Dependency injection presentation
Dependency injection presentationDependency injection presentation
Dependency injection presentation
 
Test Driven Development With Python
Test Driven Development With PythonTest Driven Development With Python
Test Driven Development With Python
 
Cours javascript
Cours javascriptCours javascript
Cours javascript
 
Retour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRetour opérationnel sur la clean architecture
Retour opérationnel sur la clean architecture
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖
 
OO Design and Design Patterns in C++
OO Design and Design Patterns in C++ OO Design and Design Patterns in C++
OO Design and Design Patterns in C++
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
Dependency injection ppt
Dependency injection pptDependency injection ppt
Dependency injection ppt
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
기업혁신을 위한 클라우드 여정
기업혁신을 위한 클라우드 여정기업혁신을 위한 클라우드 여정
기업혁신을 위한 클라우드 여정
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
 
Keyword Driven Testing
Keyword Driven TestingKeyword Driven Testing
Keyword Driven Testing
 
Dependency injection in Java, from naive to functional
Dependency injection in Java, from naive to functionalDependency injection in Java, from naive to functional
Dependency injection in Java, from naive to functional
 
SOLID Principles and Design Patterns
SOLID Principles and Design PatternsSOLID Principles and Design Patterns
SOLID Principles and Design Patterns
 
TDD Flow: The Mantra in Action
TDD Flow: The Mantra in ActionTDD Flow: The Mantra in Action
TDD Flow: The Mantra in Action
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communication
 
asp-net.pptx
asp-net.pptxasp-net.pptx
asp-net.pptx
 

Viewers also liked

Python Programming: Tuning and Optimization
Python Programming: Tuning and OptimizationPython Programming: Tuning and Optimization
Python Programming: Tuning and OptimizationChan Shik Lim
 
Python Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingPython Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingChan Shik Lim
 
Python Programming: Function
Python Programming: FunctionPython Programming: Function
Python Programming: FunctionChan Shik Lim
 
Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발
Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발
Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발Hyunmin Kim
 
Python programming for Bioinformatics
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for BioinformaticsHyungyong Kim
 
H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복KTH
 
『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기복연 이
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요KTH
 
Pycon2016 파이썬으로똑똑한주식투자 김대현
Pycon2016 파이썬으로똑똑한주식투자 김대현Pycon2016 파이썬으로똑똑한주식투자 김대현
Pycon2016 파이썬으로똑똑한주식투자 김대현Daehyun (Damon) Kim
 
Object-oriented Programming in Python
Object-oriented Programming in PythonObject-oriented Programming in Python
Object-oriented Programming in PythonJuan-Manuel Gimeno
 
금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014Seung-June Lee
 
Python Programming: Type and Object
Python Programming: Type and ObjectPython Programming: Type and Object
Python Programming: Type and ObjectChan Shik Lim
 

Viewers also liked (13)

Python Programming: Tuning and Optimization
Python Programming: Tuning and OptimizationPython Programming: Tuning and Optimization
Python Programming: Tuning and Optimization
 
Python Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingPython Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented Programming
 
Python Programming: Function
Python Programming: FunctionPython Programming: Function
Python Programming: Function
 
Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발
Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발
Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발
 
Python programming for Bioinformatics
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for Bioinformatics
 
H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복
 
『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요
 
Pycon2016 파이썬으로똑똑한주식투자 김대현
Pycon2016 파이썬으로똑똑한주식투자 김대현Pycon2016 파이썬으로똑똑한주식투자 김대현
Pycon2016 파이썬으로똑똑한주식투자 김대현
 
파이썬 심화
파이썬 심화파이썬 심화
파이썬 심화
 
Object-oriented Programming in Python
Object-oriented Programming in PythonObject-oriented Programming in Python
Object-oriented Programming in Python
 
금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014
 
Python Programming: Type and Object
Python Programming: Type and ObjectPython Programming: Type and Object
Python Programming: Type and Object
 

Similar to Python Programming: Data Structure

UNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllegeUNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllegeRamanamurthy Banda
 
UNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllegeUNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllegeRamanamurthy Banda
 
Python_cheatsheet_numpy.pdf
Python_cheatsheet_numpy.pdfPython_cheatsheet_numpy.pdf
Python_cheatsheet_numpy.pdfAnonymousUser67
 
Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheetZahid Hasan
 
An overview of Python 2.7
An overview of Python 2.7An overview of Python 2.7
An overview of Python 2.7decoupled
 
Underscore.js
Underscore.jsUnderscore.js
Underscore.jstimourian
 
Effective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPyEffective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPyKimikazu Kato
 
Using-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptxUsing-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptxUadAccount
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a ElixirSvet Ivantchev
 
Collections In Scala
Collections In ScalaCollections In Scala
Collections In ScalaKnoldus Inc.
 
C++ Searching & Sorting5. Sort the following list using the select.pdf
C++ Searching & Sorting5. Sort the following list using the select.pdfC++ Searching & Sorting5. Sort the following list using the select.pdf
C++ Searching & Sorting5. Sort the following list using the select.pdfRahul04August
 
Arrays and function basic c programming notes
Arrays and function basic c programming notesArrays and function basic c programming notes
Arrays and function basic c programming notesGOKULKANNANMMECLECTC
 
arrays-120712074248-phpapp01
arrays-120712074248-phpapp01arrays-120712074248-phpapp01
arrays-120712074248-phpapp01Abdul Samee
 

Similar to Python Programming: Data Structure (20)

UNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllegeUNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllege
 
UNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllegeUNIT III_Python Programming_aditya COllege
UNIT III_Python Programming_aditya COllege
 
Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheet
 
Python_cheatsheet_numpy.pdf
Python_cheatsheet_numpy.pdfPython_cheatsheet_numpy.pdf
Python_cheatsheet_numpy.pdf
 
Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheet
 
An overview of Python 2.7
An overview of Python 2.7An overview of Python 2.7
An overview of Python 2.7
 
A tour of Python
A tour of PythonA tour of Python
A tour of Python
 
Underscore.js
Underscore.jsUnderscore.js
Underscore.js
 
Practical cats
Practical catsPractical cats
Practical cats
 
An introduction to scala
An introduction to scalaAn introduction to scala
An introduction to scala
 
Effective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPyEffective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPy
 
Python Training
Python TrainingPython Training
Python Training
 
Using-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptxUsing-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptx
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a Elixir
 
Arrays
ArraysArrays
Arrays
 
Collections In Scala
Collections In ScalaCollections In Scala
Collections In Scala
 
C++ Searching & Sorting5. Sort the following list using the select.pdf
C++ Searching & Sorting5. Sort the following list using the select.pdfC++ Searching & Sorting5. Sort the following list using the select.pdf
C++ Searching & Sorting5. Sort the following list using the select.pdf
 
Arrays and function basic c programming notes
Arrays and function basic c programming notesArrays and function basic c programming notes
Arrays and function basic c programming notes
 
Spark workshop
Spark workshopSpark workshop
Spark workshop
 
arrays-120712074248-phpapp01
arrays-120712074248-phpapp01arrays-120712074248-phpapp01
arrays-120712074248-phpapp01
 

More from Chan Shik Lim

FPV Streaming Server with ffmpeg
FPV Streaming Server with ffmpegFPV Streaming Server with ffmpeg
FPV Streaming Server with ffmpegChan Shik Lim
 
Improving monitoring systems Interoperability with OpenMetrics
Improving monitoring systems Interoperability with OpenMetricsImproving monitoring systems Interoperability with OpenMetrics
Improving monitoring systems Interoperability with OpenMetricsChan Shik Lim
 
pgday.seoul 2019: TimescaleDB
pgday.seoul 2019: TimescaleDBpgday.seoul 2019: TimescaleDB
pgday.seoul 2019: TimescaleDBChan Shik Lim
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideChan Shik Lim
 
Kubernetes on Premise
Kubernetes on PremiseKubernetes on Premise
Kubernetes on PremiseChan Shik Lim
 
Hadoop High Availability Summary
Hadoop High Availability SummaryHadoop High Availability Summary
Hadoop High Availability SummaryChan Shik Lim
 

More from Chan Shik Lim (6)

FPV Streaming Server with ffmpeg
FPV Streaming Server with ffmpegFPV Streaming Server with ffmpeg
FPV Streaming Server with ffmpeg
 
Improving monitoring systems Interoperability with OpenMetrics
Improving monitoring systems Interoperability with OpenMetricsImproving monitoring systems Interoperability with OpenMetrics
Improving monitoring systems Interoperability with OpenMetrics
 
pgday.seoul 2019: TimescaleDB
pgday.seoul 2019: TimescaleDBpgday.seoul 2019: TimescaleDB
pgday.seoul 2019: TimescaleDB
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 
Kubernetes on Premise
Kubernetes on PremiseKubernetes on Premise
Kubernetes on Premise
 
Hadoop High Availability Summary
Hadoop High Availability SummaryHadoop High Availability Summary
Hadoop High Availability Summary
 

Recently uploaded

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 

Recently uploaded (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 

Python Programming: Data Structure