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