(自用)Python Log4 循环、dict和set、不可变对象

循环

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)存储,具有极快的查找速度

list和dict的对比

dict的原理和查字典的原理相同,给定一个名字比如例子中的“Michael”,dict在内部可以直接计算出其成绩对应的页码,可以直接取出来,十分的快

把数据放入dict的方法除了初始化制定外,还可以通过key放入。

>>> d['Adam'] =67

>>> d['Adam']

67

但是一个key只能对应一个value,若是多个输入,则后一个会覆盖前一个value,而且如果key不存在的话,dict会报错。

判断key是否存在的两种方法

要删除一个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一样,同样不能放入可变对象。


不可变对象

你可能感兴趣的:((自用)Python Log4 循环、dict和set、不可变对象)