循环
Python的循环有两种:
① for x in …循环
②while循环
for x in …
依次把list或者tuple的每个元素迭代出来
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
这段代码会依次打印names里面的元素,所以实际上,for循环是把每个元素都代入变量x,然后执行缩进段的代码
如果要计算1-100的整数和,Python提供了一个range()函数,可以生成一个整数序列,再通过list()函数可以转化为list,比如range(5)生成的序列是从0开始小于5的整数,这个时候再list(range(5)),就将这个序列转化成了list,然后就可以再进行for循环求和。
>>>list(range(5))
[0, 1, 2, 3, 4]
while
break
在循环中,使用break可以提前退出循环
continue
在循环中,使用continue,可以跳过这一次循环,直接进行下一轮循环
dict
Python内置了字典,在其他语言中也成为map,使用键-值(key-value)存储,具有极快的查找速度
dict的原理和查字典的原理相同,给定一个名字比如例子中的“Michael”,dict在内部可以直接计算出其成绩对应的页码,可以直接取出来,十分的快
把数据放入dict的方法除了初始化制定外,还可以通过key放入。
>>> d['Adam'] =67
>>> d['Adam']
67
但是一个key只能对应一个value,若是多个输入,则后一个会覆盖前一个value,而且如果key不存在的话,dict会报错。
要删除一个key,可以用pop(key)的方式,对应的value也会被删除
※注:dict内存存放的顺序和key的放入顺序是没有关系的
※与list相比,dict:
①查找和插入的速度极快,不会随着key的增加而变慢
②需要占用大量的内存,内存的浪费很多
所以,dict是空间换取时间
在Python中,用到dict的地方很多,始终记得dict中的key必须为不可变对象,这是dict通过key来计算value的存储位置,这种算法叫做哈希算法。要保证hash的正确性,作为key的对象就不能变。
在Python中,字符串和整数都是不可变的,因此可以作为key,但是list是可变的,不能作为key,会报错。
set
set和dict类似,是一组key的集合,但是不存储value。由于key不重复,所以set中的key不重复。
要创建一个set,需要一个list作为输入集合
可以用add(key)的方式添加元素,可以重复添加同一个,但是没有效果
可以用remove(key)的方式删除元素
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集操作
set和dict唯一的区别仅在于没有存储对应的value,但是set原理和dict一样,同样不能放入可变对象。