Python笔记1——list,tuple,dict,set,不可变对象

来源:互联网 发布:nginx 子域名映射端口 编辑:程序博客网 时间:2024/06/05 09:33
list处理方法:
len(list)获取list元素的个数
用索引访问list的元素——索引顺数从0开始,倒数从-1开始
list.append('A')追加元素A到list末尾
list.insert(1,'A')把元素A插入到索引为1的位置
list.pop()删除list末尾的元素
list.pop(i)删除指定位置的元素,i为索引位置
list[i]='a'要把索引位为i的某个元素替换成元素a,可以直接赋值给对应的索引位置
list里面的元素的数据类型也可以不同
list元素也可以是另一个list
list=[]如果一个list中一个元素也没有,就是一个空的list,它的长度为0

tuple的陷阱:t=(1),定义的不是tuple,而是数字1,为了避免歧义,规定定义只有1个元素的tuple时必须加一个逗号,t=(1,)

可变的tuple:即在tuple里面有元素是list。tuple所谓的不变,指的是tuple的每个元素,指向永远不变。


range()函数可以生成一个整数序列,如range(5)生成【0,1,2,3,4】

if...else,elif,while
raw_input()函数用来读取用户输入,但是,他读取的内容永远以字符串形式返回,所以当返回的字符串数字去和整数比较时,要记得先用int()把字符串转换为整型
ctrl+c以用来退出程序,强制结束Python进程,跳出死循环

dict:
一个key只能对应一个value,所以多次对一个key放入value,后值会把前值冲掉。
如果key不存在,dict就会报错,要避免key不存在的错误,有两种办法,一是通过 in 判断key是否存在:二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value.
pop(key)方法,用于删除一个key
dict是一种用空间换时间的方法,即他占用内存大,运行速度快,与list相反。
dict是根据key来计算value的存储位置,这种通过key来计算存储位置的算法称为哈希算法(hash)。要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key.

set:
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key.
重复元素在set中自动被过滤.
add(key)方法,可以添加元素到set中,可以重复添加,但不会有效果
remove(key)方法,可以删除set中的元素
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

list有sort()方法用于对list中的元素进行排序,字符串有replace()方法,如replace('a','A'),即把字符串中的a替换为A.

要加深对不可变对象的理解,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。