l = [] l = [1,2,"Great"] print l[0], l[-1] print l[1:3], l[:] print L = range(10) print L[::2] print print l * 2 print l + [3, 4, 5] print len(l) print print 4 in L a = ['spam', 'eggs', 100, 1234] a[2] = a[2] + 23 print a a = ['spam', 'eggs', 123, 1234] a[0:2] = [1,12] # 동일한 크기에 대한 슬라이스 치환 print a a[0:2] = [1] # 서로 다른 크기에 대한 슬라이스 치환 print a a[0:1] = [1, 2, 3] # 서로 다른 크기에 대한 슬라이스 치환 print a a = [1, 12, 123, 1234] a[0:2] = [] print a a = [123, 1234] a[1:1] = ['spam', 'ham'] # 1번째 인덱스에 삽입 print a b = [123, 1234] b[1:2] = ['spam', 'ham'] # 1번째 원소에 대한 치환 print b a[:0] = a # 리스트 맨 앞에 자기 자신을 삽입 print a a = range(4) print a print a[::2] a[::2] = range(0, -2, -1) # a[0::2] = [0, 2], range(0, -2 -1) = [0, -1] print a a[::2] = range(3) # range(3) = [0, 1, 2], 확장 슬라이스 사용하여 치환시에는 크기가 다를 때 에러 발생 a = [1, 2, 3, 4] del a[0] print a del a[1:] print a a = range(4) print a print a[::2] del a[::2] print a a = range(5) del a # 리스트 자체에 대한 삭제 (정확히는 리스트를 가리키는 레퍼런스를 지닌 변수 a 삭제) print a s = [1, 2, 3] t = ['begin', s, 'end'] print t print t[1][1] s[1] = 100 print t L = [1, ['a', ['x', 'y'], 'b'], 3] print L[0] print L[1] print L[1][1] print L[1][1][1] s = [1, 2, 3] s.append(5) # 리스트 맨 마지막에 정수 값 5 추가 print s s.insert(3, 4) # 3 인덱스 위치에 정수 값 4 추가 print s s = [1, 2, 3, 4, 5] print s.index(3) # 값 3의 인덱스 반환 print s.count(2) # 값 2의 개수 반환 s = [1, 2, 2, 2, 2, 2, 3, 4, 5] print s.count(2) s = [1, 2, -10, -7, 100] s.reverse() # 자료의 순서를 뒤집기 (반환값 없음) print s s.sort() # 정렬 (반환값 없음) print s s = [10, 20, 30, 40, 50] s.remove(10) # 자료 값 10 삭제 print s s = [10, 20, 30, 20, 40, 50] # 자료 값이 여러개 존재하면 첫번째 것만 삭제 s.remove(20) print s s.extend([60, 70]) # 새로운 리스트([60, 70]를 기존 리스트 s 뒤에 병합 print s s.append([60, 70]) # 주의: append로 새로운 리스트를 추가하면 하나의 자료 요소로서 추가 print s s = [10, 20, 30, 40, 50] s.append(60) print s print s.pop() print s s = [10, 20, 30, 40, 50] print s.pop(0) #0 번째 인덱스 값을 꺼낸다. print s print s.pop(1) #1 번째 인덱스 값을 꺼낸다. print s q = [10, 20, 30, 40, 50] q.append(60) print q.pop(0) print q lt = [('one', 1), ('two', 2), ('three', 3)] for t in lt: print 'name =', t[0] ,', num =', t[1] lt = [('one', 1), ('two', 2), ('three', 3)] for t in lt: print 'name = %s, num = %s' % t lt = [('one', 1), ('two', 2), ('three', 3)] for name, num in lt: print name, num LL = [['one', 1], ['two', 2], ['three', 3]] for name, num in LL: print name, num L = [1, 5, 3, 9, 8, 4, 2] L.sort() L print cmp(1,2) print cmp(5,2) print cmp('abc', 'abc') def mycmp(a1, a2): # 대소관계에 따른 순서를 반대로 바꾸었음 return cmp(a2, a1) L = [1, 5, 3, 2, 4, 6] L.sort(mycmp) # 역순으로 정렬 print L def cmp_1(a1, a2): return cmp(a1[1], a2[1]) def cmp_2(a1, a2): return cmp(a1[2], a2[2]) L = [ ('lee', 5, 38), ('kim', 3, 28), ('jung', 10, 36)] L.sort() print 'sorted by name:', L L.sort(cmp_1) print 'sorted by experience:', L L.sort(cmp_2) print 'sorted by age:', L L = [1, 6, 3, 8, 6, 2, 9] L.sort(reverse = True) L L = ['123', '34', '56', '2345'] L.sort() print L L.sort(key=int) print L L = [1, 6, 3, 8, 6, 2, 9] newList = L.sort() print newList print L L = [1, 6, 3, 8, 6, 2, 9] newList = sorted(L) print newList print L for ele in sorted(L): print ele, def mycmp(a1, a2): # 대소관계에 따른 순서를 반대로 바꾸었음 return cmp(a2, a1) L = [1, 5, 3, 2, 4, 6] print sorted(L, mycmp) # 역순으로 정렬 print L L = [1, 6, 3, 8, 6, 2, 9] print sorted(L, reverse=True) L = ['123', '34', '56', '2345'] print sorted(L, key=int) L = [1, 6, 3, 8, 6, 2, 9] r = L.reverse() print r print L L = [1, 6, 3, 8, 6, 2, 9] L.reverse() # 역순으로 뒤집는다. for ele in L: print ele + 2, print L.reverse() # 다시 원상태로 복귀시킨다. print L L = [1, 6, 3, 8, 6, 2, 9] print L for ele in reversed(L): print ele + 2, print print L L = [] for k in range(10): L.append(k*k) print L L = [k * k for k in range(10)] print L L = [k * k for k in range(10) if k % 2] # 홀수의 제곱만 리스트로 형성 print L L = [] for k in range(10): if k%2: L.append(k*k) print L [(i, j, i*j) for i in range(2, 100, 2) for j in range(3, 100, 3) if (i + j) % 7 == 0] seq1 = 'abc' seq2 = (1, 2, 3) [ (x, y) for x in seq1 for y in seq2] words = 'The quick brown fox jumps over the lazy and fast dog'.split() stuff = [w for w in words if w.startswith('f')] print stuff [(x,y,z) for x in range(1,30) for y in range(x,30) for z in range(y,30) if x**2 + y**2 == z**2] words = 'The quick brown fox jumps over the lazy dog'.split() stuff = [[w.upper(), w.lower(), len(w)] for w in words] for i in stuff: print i list_a = ['A', 'B'] list_b = ['C', 'D'] print [x+y for x in list_a for y in list_b] print print [[x+y for x in list_a] for y in list_b] l = [] for y in list_b: l2 = [] for x in list_a: l2.append(x+y) l.append(l2) print l CL = ['is fun'] CL.insert(0, CL) print CL print CL[0] print CL[0][0] print CL[0][0][0] print range(10) # 0(Included)부터 10(Excluded)까지 print range(5, 15) # 5(Included)부터 15(Excluded)까지 print range(5, 15, 2) # 0(Included)부터 10(Excluded)까지, Step: 2 print range(0, -10, -1) # 0(Included)부터 -10(Excluded)까지, Step: -1 for el in range(10): print el, 'inch=', el * 2.54, 'centi' sun, mon, tue, wed, thu, fri, sat = range(7) print sun, mon, tue, wed, thu, fri, sat print dir() a = 100 print dir() print "name: " # 로컬 이름 print __name__ print print "doc: " # 로컬에 지정된 문서문자열 print __doc__ print import math print "math.__name__: ", math.__name__ print print dir(math) # dir() 내장 함수에 모듈을 인자로 전달하면 해당 모듈이 지원하는 멤버 변수 및 함수 목록을 얻는다. print print "math.__doc__:", math.__doc__ print print "math.log10.__doc__: ", math.log10.__doc__ import sys print dir(sys) # dir() 내장 함수에 모듈을 인자로 전달하면 해당 모듈이 지원하는 멤버 변수 및 함수 목록을 얻는다. # file: arg.py import sys print sys.argv # python arg.py -l -a -v a b c import getopt argv = '-a -b -c123 -d 456 spam and ham' #가상으로 만든 sys.argv로 받은 명령행 옵션 문자열 #argv = sys.argv[1:] <-- 실제로 만드는 방법 args = argv.split() # 공백으로 분리 및 간 단어를 지닌 리스트 생성 print args print optlist, args = getopt.getopt(args, 'abc:d:') # a, b는 추가 인수가 없음을 나타냄 print optlist # c:, d:는 추가 인수가 존재함을 나타냄 print args # 옵션을 처리하고 남아있는 명령행 인수들 a = [1, 2, 3, 4, 5] b = range(10) print a print b a = [0] * 10 a N = [20, 15, 39, 2, 7, 5, 223, 75, 46, 87] M = [3, 5, 9, 2, 7] L = [None] * 10 for k in M: L[k] = k * N[k] print L mat = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] print mat print mat[1][2] mat = [[0] * 4] * 3 mat mat[0][0] = 100 mat mat = [] for x in range(3): mat.append( [0] * 4) print mat mat[0][0] = 100 print mat mat = [ [0]*4 for x in range(3)] print mat mat[0][0] = 100 print mat from array import * a = array('i') print a a = array('i', range(10)) print a a = array('i', [0] * 10) print a b = array('c', "Hello Python") print b print b[0], b[1] from array import * a = array('i') a.append(1) a.append(4) print a a.insert(1,2) # 인덱스 1 위치에 2 값 넣기 print a a.extend(array('i', [1, 2, 3, 4, 5])) print a a = array('i', [1, 2, 3, 4, 5]) print a[0] print a[-1] print a[1:3] print a[1:-1] print del a[0] print a print del a[:3] print a from numpy import * a = array(((1,2,3), (4,5,6), (7, 8, 9))) # 3*3 행렬 생성 print a print b = zeros((3,3)) print b print c = ones((3,3)) print c print d = a * c print d print e = dot(a, c) print e print f = a + c print f print from numpy.linalg import * g = inv(a) print g print h = eig(a) print h print import glob print glob.glob('./[0-9].*') print glob.glob('*.gif') print glob.glob('?.gif') print glob.glob('*.ipynb') print glob.glob('*.i*') print glob.glob('*') import glob import os flist = glob.glob('*') for fname in flist: if os.path.isfile(fname): print fname, 'is a regular file.' elif os.path.isdir(fname): print fname, 'is a dir' elif os.path.islink(fname): print fname, 'is a symbolic link' print os.path.getsize('python05.ipynb') # 파일의 크기를 얻는다. t = os.path.getatime('python05.ipynb') # 파일의 최종 접근시간을 얻는다. print t # 리턴된 시간은 1970년 1월 1일 00시 00분 부터 경과한 초 import time print time.ctime(t) # 문자열 시간으로 변환 print time.ctime(os.path.getmtime('python05.ipynb')) # 파일의 최종 수정시간을 얻는다 (가장 많이 사용) print time.ctime(os.path.getctime('python05.ipynb')) # 파일의 생성 시간을 얻는다 (대부분의 경우 getmtime()과 동일).