L = [1, 5, 3, 9, 8, 4, 2]
print L.sort()
print L
None [1, 2, 3, 4, 5, 8, 9]
print cmp(1,2)
print cmp(5,2)
print cmp('abc', 'abc')
-1 1 0
def mycmp(a1, a2): # 대소관계에 따른 순서를 반대로 바꾸었음
return cmp(a2, a1)
L = [1, 5, 3, 2, 4, 6]
L.sort(mycmp) # 역순으로 정렬
print L
[6, 5, 4, 3, 2, 1]
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
sorted by name: [('jung', 10, 36), ('kim', 3, 28), ('lee', 5, 38)] sorted by experience: [('kim', 3, 28), ('lee', 5, 38), ('jung', 10, 36)] sorted by age: [('kim', 3, 28), ('jung', 10, 36), ('lee', 5, 38)]
L = [1, 6, 3, 8, 6, 2, 9]
L.sort(reverse = True)
print L
[9, 8, 6, 6, 3, 2, 1]
L = ['123', '34', '56', '2345']
L.sort()
print L
L.sort(key=int)
print L
['123', '2345', '34', '56'] ['34', '56', '123', '2345']
L = [1, 6, 3, 8, 6, 2, 9]
newList = sorted(L)
print newList
print L
[1, 2, 3, 6, 6, 8, 9] [1, 6, 3, 8, 6, 2, 9]
for ele in sorted(L):
print ele,
1 2 3 6 6 8 9
def mycmp(a1, a2): # 대소관계에 따른 순서를 반대로 바꾸었음
return cmp(a2, a1)
L = [1, 5, 3, 2, 4, 6]
print sorted(L, mycmp) # 역순으로 정렬
print L
[6, 5, 4, 3, 2, 1] [1, 5, 3, 2, 4, 6]
L = [1, 6, 3, 8, 6, 2, 9]
print sorted(L, reverse=True)
L = ['123', '34', '56', '2345']
print sorted(L, key=int)
[9, 8, 6, 6, 3, 2, 1] ['34', '56', '123', '2345']
L = [1, 6, 3, 8, 6, 2, 9]
print L.reverse()
print L
None [9, 2, 6, 8, 3, 6, 1]
L = [1, 6, 3, 8, 6, 2, 9]
L.reverse() # 역순으로 뒤집는다.
for ele in L:
print ele + 2,
print
L.reverse() # 다시 원상태로 복귀시킨다.
print L
11 4 8 10 5 8 3 [1, 6, 3, 8, 6, 2, 9]
L = [1, 6, 3, 8, 6, 2, 9]
print L
for ele in reversed(L):
print ele + 2,
print
print L
[1, 6, 3, 8, 6, 2, 9] 11 4 8 10 5 8 3 [1, 6, 3, 8, 6, 2, 9]
L = []
for k in range(10):
L.append(k*k)
print L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
L = [k * k for k in range(10)]
print L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[expression for expr1 in sequence1 for expr2 in sequence2 ... for exprN in sequenceN if condition]
l = [] for expr1 in sequence1: for expr2 in sequence2: ... for exprtN in sequenceN: if condition: l.append(expression)
L = [k * k for k in range(10) if k % 2] # 홀수의 제곱만 리스트로 형성
print L
[1, 9, 25, 49, 81]
L = []
for k in range(10):
if k%2:
L.append(k*k)
print L
[1, 9, 25, 49, 81]
L = [(i, j, i*j) for i in range(2, 20, 2) for j in range(3, 20, 3) if (i + j) % 7 == 0]
print L
[(2, 12, 24), (4, 3, 12), (6, 15, 90), (8, 6, 48), (10, 18, 180), (12, 9, 108), (16, 12, 192), (18, 3, 54)]
seq1 = 'abc'
seq2 = (1, 2, 3)
print [(x, y) for x in seq1 for y in seq2]
[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]
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
['THE', 'the', 3] ['QUICK', 'quick', 5] ['BROWN', 'brown', 5] ['FOX', 'fox', 3] ['JUMPS', 'jumps', 5] ['OVER', 'over', 4] ['THE', 'the', 3] ['LAZY', 'lazy', 4] ['DOG', 'dog', 3]
참고 문헌: 파이썬(열혈강의)(개정판 VER.2), 이강성, FreeLec, 2005년 8월 29일