List和Tuple类型
List用[],Tuple用() , Python 规定,单元素 tuple 要多加一个逗号“,”,为了避免歧义。
tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
dict
类似于java 的map,k:v 结构,语法如下:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
len(d) #获取长度
避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符:
if 'Paul' in d:
print d['Paul']
如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
ict的特点
1.查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
2.dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
3.由于dict是按 key 查找,所以,在一个dict中,key不能重复。
4.dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样:
5.作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。
set
类似于list,但是无序,不能重复
特点:如果删除的元素不存在set中,remove()会报错
Python函数之返回多值
在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
Python之定义默认参数、可变参数
对list进行切片
>>> L[0:3]
['Adam', 'Lisa', 'Bart']
L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素,如果第一个索引是0,还可以省略:
>>> L[:3]
['Adam', 'Lisa', 'Bart']
也可以从索引1开始,取出2个元素出来:
>>> L[1:3]
['Lisa', 'Bart']
只用一个 : ,表示从头到尾:
>>> L[:]
['Adam', 'Lisa', 'Bart', 'Paul']
因此,L[:]实际上复制出了一个新list。
切片操作还可以指定第三个参数:
>>> L[::2]
['Adam', 'Bart']
第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个,把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。
网友评论