本章重点:
1、熟练掌握列表、字典的增删该查循环功能,总结出两者的区别
2、元组的定义和基本功能
3、字符串的常见用法
一、列表,是我们以后最常用的数据类型之一,功能有增加、修改、删除、查询、切片、循环、排序
1、定义:name=["suly","zoe","mark",1,2,3,,4,5,6] ,从左往右索引值分别为0,1,2,3,4…… ,从右往左分别为-1,-2,-3,-4……
定义一个空列表: name=[]
2、增加:(1)增加到最后name.append()
(2)插入到对应索引值的位置name.insert(1,"marry")
3、修改:(1)索引值为1的元素修改成“lily”:name[1]="lily"
(2)批量修改,索引值2到4的元素分别修改为“s”,"a","s",5和6的位置直接插入“l”,"y:name[2:5]="sasly" ;注意顾头不顾尾
4、删除:(1)批量删除索引值2到5的元素,注意5不删除,del name[2:5]
(2)删除最后一个元素并返回其值:name.pop()
(3)删除指定元素“lily":”name.remove("lily")
5、查询:(1)查询Lily的索引值:name.index("Lily")
(2)查询元素4的个数:name .count(4)
6、循环:
(1)for i in name:
print(i)
(2)for index,i in enumerate (name):
print(index,i)
7、切片:将索引值2到4的元素切出来组成新列表name1=name[2:5]注意顾头不顾尾
(1)从头开始切name[0:5];name[:5]
(2)从第5个切到最后一个:name[5:] ;从倒数第5个切到最后一个:name[-5:]
8、排序:
(1)name.sort()
(2)name.reverse() 反转,顺序掉换
9、复制:name1=name.copy()
(1)浅copy,只有第一层独立。
(2)深copy,完全独立: import copy
name1=copy.deepcopy(name)
10、获取列表长度:len(name)
11、拼接:name1+name2 或者把name2加到name1:name1.extend(name2)
12、清空列表:name.clear()
二、元组=只读列表,不可修改,所以功能只有查询和统计。
三、字符串:有序、不可变
isdigit,replace,find,count,strip,center,split,format,join.
四、hash函数:输入任意长度,通过散列算法,将值变换成固定长度输出。被hash的值必须固定。
数字、元祖、字符串都不可变,所以可hash。列表不可hash。
五、字典:
1、定义:info={"key1":"value1"," key2":"value2","key3":"value3"……}其中key值不可变,且不能重复,可hash。也有增加、删除、修改、查询、循环功能。
2、字典的特点:(1)无序(2)查找速度快(3)可存放任意多个值
3、增加:info["key4"]="value4"
2、删除:
(1)删除并返回其值:info.pop("key1")
(2)info.popitem()随机删除
(3)del info["key1"]
3、修改:info["key1]="suly"
4、查询:
5、打印所有key值:info.keys; 打印所有value值:info.values
(1)“key1”in info:
(2)info.get(“key1”),获取key1的值,没有就返回none
(3)info["key1"],查找key1的值,没有就报错
5、循环
for index,i in enumerate(info):
print(index,i)
6、字典转列表:info.items()
7、合并:info.update(info1) 把info1合并到info里,key值一样的就覆盖
8、info.setdefault("key2","value2"),有key2就查找,没有就新建一个key2,其值为value2
9、批量生成key:info.fromkeys(["a","b","c"])