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))
[1, 3, 5, 7, 9]

 

3. Map

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

 

>>> map(lambda x : x * x, range(5))
[0, 1, 4, 9, 16]

 

且支持多个sequnce

>>> map(lambda x, y : x + y, range(5), range(5))
[0, 2, 4, 6, 8]

4. Reduce

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

 

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

 

5. List的初始化

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

 

>>> squares = [x**2 for x in range(10)]

>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [(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) ]
[0, 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

6. Del

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

 

>>> lista
['steven', 'lucy', 'adam']
>>> del lista[0]
>>> lista
['lucy', 'adam']
>>> del lista[0:1]
>>> 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[0]
3
>>> t = t, 'fxx', False
>>> t
((3, 'one', 3.14), 'fxx', False)
>>> t = 'single', # <-- note trailing comma
>>> t[0]
'single'

8. Sets

set是元素的集合,没有重复元素,可以做集合运算

 

>>> s0 = set([1, 'six', 0, 5, False, 2, 'nine', 0, 'seven'])
>>> t = 6, 'nine', 8, 'twelve', 2, True, 0, 'seven'
>>> s1 = set(t)
>>> s0 & s1
set([0, 1, 2, 'nine', 'seven']) # note: 0 == False, 1 == True
>>> s0 | s1
set([0, 1, 2, 5, 6, 'twelve', 8, 'six', 'seven', 'nine'])
>>> 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. 比较

序列的比较是按照类似字符串比较的方式进行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值