python学习笔记(三)
1.dict
dict是类型,使用key-value储存,通过一一对应的方式查找。与list相比,具有查找速度更快,但是占用空间更高的特点。key需要是不能变的,才能保证查找结果的唯一性,所以需要使用整数、字符串作为key,list不能作为key。dict是无序集合,与存放入key的先后顺序无关。
>>> d={'aaa':111,'bbb':'222',3:333} #定义整个dict时用{}
>>> d['bbb'] #对某个key进行操作时用[]
'222'
>>> d['ccc']=444 #添加一个新的key并且确定其中的值,若key已存在则修改该key的值
>>> d
{'aaa': 111, 'bbb': '222', 3: 333, 'ccc': 444}
>>> 555 in d #用in可以查看该key是否已存在dict中
False
>>> 3 in d
True
>>> d.get(3) #获取该key的值,若不存在则返回none;也可以自定义不存在时的返回值
333
>>> d.get(3,1)
333
>>> d.get(4,1)
1
>>> d.pop(3) #删除key
333
>>> d
{'aaa': 111, 'bbb': '222', 'ccc': 444}
2 set
set和dict一样是无序的集合,但是set是没有value的。set的定义需要通过一个list来实现,set中的重复元素会被忽视,set可以做交集并集操作。
>>> s=set([1,1,2,3,'aa']) #定义set
>>> s
{1, 2, 3, 'aa'}
>>> s.add('bb') #增加一个key
>>> s
{1, 2, 3, 'aa', 'bb'}
>>> s.remove('aa') #移除一个key
>>> s
{1, 2, 3, 'bb'}
>>> s2=set([1,2,4])
>>> s&s2 #交集
{1, 2}
>>> s|s2 #并集
{1, 2, 3, 4, 'bb'}
3.函数
3.1 调用函数
可以把函数名赋值给一个变量,用这个变量来表示这个函数,除此以外没什么特别的。
>>> a=abs
>>> a(-1)
1
调用现成的函数库需要用import,下述语句表示可以在后面使用math库中的函数
import math
调用自己定义的函数则采用如下方式;
from <文件名(不含后缀)> import <函数名> #导入函数
<函数名>(<参变量>) #调用函数
3.2 定义函数
def <函数名>(参变量):
<函数体>
如果要定义一个空函数,可以在用一个pass代替函数体。如果在函数体内存在return,则返回return的值,否则返回空值。
使用参数检查语句可以更好地返回错误原因。
if not isinstance(x, (int, float)): #如果x不是整数或小数
raise TypeError('bad operand type')
python中的函数可以返回多个值,实际上是返回一个tuple。
3.3 参数
-
默认参数
n为默认参数,test(x)和test(x,2)得到相同结果,而test(x,3)可以正常地令n=3。默认参数要选择不变参数才能避免不必要的错误。def test(x,n=2)
-
可变参数
可变参数用于定义不知道变量个数的函数,这些参数会自动组装成tuple。def test(*Numbers)