array
1 #coding utf-8 2 3 __author__ = 'thinkpad' 4 5 numbers=[1,2,3,4,5,6,7,8,9,10] 6 print(numbers) 7 print len(numbers) 8 #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 9 10 print numbers[1:10:2] 11 #[2, 4, 6, 8, 10] 12 13 14 print numbers[2:6] 15 #[3, 4, 5, 6] 16 17 print numbers[10:2:-2] 18 #[10, 8, 6, 4] 19 20 #倒序的三种方式 21 (numbers.reverse()) 22 print numbers 23 24 print numbers[::-1] 25 #[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 26 27 28 print list(reversed(numbers)) 29 30 print 'done'
1 列表切割赋值 2 3 >>> a = [1, 2, 3, 4, 5] 4 >>> a[2:3] = [0, 0] 5 >>> a 6 [1, 2, 0, 0, 4, 5] 7 >>> a[1:1] = [8, 9] 8 >>> a 9 [1, 8, 9, 2, 0, 0, 4, 5] 10 >>> a[1:-1] = [] 11 >>> a 12 [1, 5]
用压缩器反转字典 >>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> m.items() [('a', 1), ('c', 3), ('b', 2), ('d', 4)] >>> zip(m.values(), m.keys()) [(1, 'a'), (3, 'c'), (2, 'b'), (4, 'd')] >>> mi = dict(zip(m.values(), m.keys())) >>> mi {1: 'a', 2: 'b', 3: 'c', 4: 'd'} 生成器表达式 >>> g = (x ** 2 for x in xrange(10)) >>> next(g) 0 >>> next(g) 1 >>> next(g) 4 >>> next(g) 9 >>> sum(x ** 3 for x in xrange(10)) 2025 >>> sum(x ** 3 for x in xrange(10) if x % 3 == 1) 408 用字典推导反转字典 >>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> m {'d': 4, 'a': 1, 'b': 2, 'c': 3} >>> {v: k for k, v in m.items()} {1: 'a', 2: 'b', 3: 'c', 4: 'd'} 操作集合 >>> A = {1, 2, 3, 3} >>> A set([1, 2, 3]) >>> B = {3, 4, 5, 6, 7} >>> B set([3, 4, 5, 6, 7]) >>> A | B set([1, 2, 3, 4, 5, 6, 7]) >>> A & B set([3]) >>> A - B set([1, 2]) >>> B - A set([4, 5, 6, 7]) >>> A ^ B set([1, 2, 4, 5, 6, 7]) >>> (A ^ B) == ((A - B) | (B - A)) True