一总 发表于 2017-4-28 08:22:09

Python复习笔记—数据结构

1. List对象
  一些方法:

>>> lista
['steven', 3.14]
>>> lista.extend(['python', 'adam', 'alex'])
>>> lista
['steven', 3.14, 'python', 'adam', 'alex']
>>> lista.pop()
'alex'
>>> lista
['steven', 3.14, 'python', 'adam']
>>> lista.pop(2);
'python'
>>> lista
['steven', 3.14, 'adam']
>>> lista.index(3.14)
1

2. Filter
  filter(f, seqence)返回一个序列,其中的元素(x)调用f(x)返回true,即过滤掉返回false的元素

>>> filter(lambda x : x % 2 != 0, range(10))


3. Map
  map(f, sequence)在每个sequence元素(x)上调用f(x),返回整个序列调用后的结果

>>> map(lambda x : x * x, range(5))

  且支持多个sequnce

>>> map(lambda x, y : x + y, range(5), range(5))

4. Reduce
  reduce(f, sequence)在第一个元素和第二个元素上调用f,接着是结果和第三个元素,最后返回最终一个结果

>>> reduce(lambda x, y : x + y, range(5))
10

5. List的初始化
  可以用一个范围和一个计算试来灵活的初始化List

>>> squares =
>>> squares

>>> [(x, y) for x in range(3) for y in range(3) if x != y]
[(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
>>> def is_prime(n) :
for i in range(2, n) :
if 0 == n % i :
return False
return True
>>> [ x for x in range(30) if is_prime(x) ]

6. Del
  del可以删除元素,也可删除一个范围的元素,甚至整个对象

>>> lista
['steven', 'lucy', 'adam']
>>> del lista
>>> lista
['lucy', 'adam']
>>> del lista
>>> lista
['adam']
>>> del lista
>>> lista
Traceback (most recent call last):
File "<pyshell#421>", line 1, in <module>
lista
NameError: name 'lista' is not defined
7. Tuples
  tuple包含一组逗号(,)分隔的值

>>> t = 3, 'one', 3.14
>>> t
3
>>> t = t, 'fxx', False
>>> t
((3, 'one', 3.14), 'fxx', False)
>>> t = 'single', # <-- note trailing comma
>>> t
'single'
8. Sets
  set是元素的集合,没有重复元素,可以做集合运算

>>> s0 = set()
>>> t = 6, 'nine', 8, 'twelve', 2, True, 0, 'seven'
>>> s1 = set(t)
>>> s0 & s1
set() # note: 0 == False, 1 == True
>>> s0 | s1
set()
>>> s0 - s1
set(['six', 5])
>>> s0 ^ s1
set(['twelve', 5, 6, 8, 'six'])
>>>
9. Dicts
  dict相当于其他语言中的map

>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'sape': 4139, 'guido': 4127, 'jack': 4098}
>>> tel['jack']
4098
>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'guido': 4127, 'irv': 4127, 'jack': 4098}
>>> tel.keys()
['guido', 'irv', 'jack']
>>> 'guido' in tel
True
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}
>>> dict([(x, x**2) for x in (2, 4, 6)])   # use a list comprehension
{2: 4, 4: 16, 6: 36}
>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'jack': 4098, 'guido': 4127}

10. 遍历集合

>>> tels = dict(sape=4139, guido=4127, jack=4098)
for k, v in tels.iteritems() :
print k + ':',v
sape: 4139
jack: 4098
guido: 4127
>>> for i, v in enumerate(['one', 'two', 'three']) :
print i + 1, ' : ' + v

1: one
2: two
3: three
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
print 'What is your {0}?It is {1}.'.format(q, a)
What is your name?It is lancelot.
What is your quest?It is the holy grail.
What is your favorite color?It is blue.

11. 比较
  序列的比较是按照类似字符串比较的方式进行。
页: [1]
查看完整版本: Python复习笔记—数据结构