Python学习(六)

递归

设置递归的深度:

import sys

sys.setrecursionlimit(1000000)

设置为1000000层

汉诺塔

defhanoi(n,x,y,z):

----if n ==1:

-------print(x,"-->",z)

---else:

------hanoi(n-1,x,z,y)

------print(x,"-->",z)

------hanoi(n-1,y,x,z)

字典:当索引不好用时

通过键找到相应位置的值,是键值对的形式

创建和访问字典

用大括号括起来的:dic1={"英语":"English","日语":"Japan","汉语":"China","香蕉":"Banana"}

dic1["英语"]--->"English"

空字典:dic2={}

dict3=dict((('f',70),('i',105),('s',115),('h',104)))--->dict3--->{'f':70,'i':105,'s':115,'h',104}

dict4=dict(1="one",2="two)--->dict4--->{"1":"one,"2":"two"}

dict4["1"]="three"--->dict4--->{"1":"three","2":"two"}

dict4["3"]="one"--->dict4--->{"1":"three","2":"two","3":"one"}

创建字典

fromKeys()

重新创建一个新的字典;

dic1={"英语":"English","日语":"Japan","汉语":"China","香蕉":"Banana"}

dic1.fromKeys(("英语","日语"))--->{"英语":"English","日语":"Japan"}

dic1.fromKeys(("英语","日语"),"haha")--->{"英语":"haha","日语":"haha"}

dic1.fromKeys(("英语","日语"),("haha","xixi"))--->{"英语":("haha","xixi"),"日语":("haha","xixi")}

dic1.fromKeys(range(32),"赞")--->{0:"赞",1:"赞",2:"赞",3:"赞"......,32:"赞"}

常用方法:

dic1.keys()--->dict_keys([0,1, 2, 3,...,32])

dic1.values()--->dict_values(['赞', '赞', '赞',...,'赞'])

dic1.items()--->dict_items([(0, '赞'),(1, '赞'), (2, '赞'), (3, '赞'),...(32,'赞')])

dic1[32]--->报错,因为32项不存在

dic1.get(32)--->不会报错,会返回None

dic1.get(32,"haha")--->如果存在,就返回原有值,不存在就返回"haha"

判断键是否在字典中:31 in dic1---True      32 in dic1--->False

dic1.clear()--->清空字典

c=dic1      a=dic1.copy()--->浅拷贝,这样a和dic1指向的地址就不一样,但是c和dic1指向的地址是一样的。

dic1.pop(2)--->这样就会把第2 项弹出栈

dic1.popitem()--->这样会随机弹出一项,在字典是没有顺序的

dic1.setdefault('four')--->{"英语":"English","日语":"Japan","汉语":"China","香蕉":"Banana","four":None}

dic1.setdefault(5,"five")--->{"英语":"English","日语":"Japan","汉语":"China","香蕉":"Banana","four":None,5:"five"}

b={"four":4}

dic1.update(b)--->{"英语":"English","日语":"Japan","汉语":"China","香蕉":"Banana","four":4,5:"five"}

集合

set

num={1,2,3,4,5}

特点:

集合内部的元素都是唯一的,如果重复的话,重复的会被剔除掉

集合不支持索引

创建集合

一种直接把一堆元素用花括号括起来

一种是使用set()工厂函数

num=set([1,2,3,4,5,5,5,6,5,6])---->{1,2,3,4,5}

访问集合中的值

使用for把集合中的数据一个一个读取出来

通过in 和not in 判断一个元素是否在集合中已经存在

常用方法:

num.add(7)--->{1,2,3,4,5,7}

num.remove(5)--->{1,2,3,4,7}

不可变集合

num3=frozenset([1,2,3,4,5])  不可变集合

num3.add(6)--->报错


Python学习(六)_第1张图片
集合类型内建方法

你可能感兴趣的:(Python学习(六))