一.知识点的补充(基础数据类型的相关知识点)
1.str 字符串 join()
例如:
s = "可口可乐"
s1 = s.join("非常可乐") #把字符串s插入到"非常可乐"中
print(s1) ==>非可口可乐常可口可乐可可口可乐乐可口可乐
例如:
# s = "_".join("***")
# print(s) ==>*-*-* join可以把列表编程字符串,把字符串变成列表 .split()
例如:
s = "A_B_C"
s1 = s.split("_")
print(s1) ==>['A','B','C']
2.列表list的删除
例如: (要求不要使用clear全部清除,换一种写法)
lst = ["我不是药神","西游记","西红柿首富","超时空同居"]
lst1=[]
for el in lst: 字典和列表 在循环的时候不能删,因为会改变索引
lst1.append(el) 记录下来要删除的内容 (要把删除的内容记录在列表中,循环列表删除原列表或字典里的数据)
for el in lst1: 循环记录的内容
lst.remove(el) 删除原来的内容
print(lst) ==>[](全部清除)
3.fromkeys (不会对原来的字典产生影响,产生新的字典)
例如:
a = dict.fromkeys("麻花藤","*") 前面的一项都会作为key,后面一项都会作为value
print(a) ==>{"麻":"*","花":"*","藤":"*"}
例如:
dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])
print(dic) ==>返回给你一个新的字典
dic.get("jay").append("胡大")
print(dic) ==>{'jay':["周杰伦","麻花藤","胡大"],"jj":["周杰伦","麻花藤","胡大"]}
4.类型转换 (想转换成什么,就用什么括起来)
元组 ==> 列表 list(tuple)
列表 ==> 元组 tuple(list)
list ==> str str.join(list)
str ==> list list.split()
转换成False 的数据类型
0 '' None [] () {} set()==> False
二.set 集合
set集合是python的一个基本数据类型
set中的元素是不重复的,无序的,里面的元素必须是可哈希的(int str bool tuple)
set 是dict类型的数据.只保存key 不保存value 也用{}表示
set 本身是不可哈希的 是可变的 set的主要功能是去掉重复的东西
例如:
s = {"ABC","ABC","DEF","XYZ"}
print(s) ==>{"ABC","DEF","XYZ"}
⑴增
例如:
s = {"刘嘉玲","关之琳","王祖贤"}
s.add("郑裕玲") ==>{'郑裕玲', '刘嘉玲', '关之琳', '王祖贤'}
s = {"刘嘉玲","关之琳","王祖贤"}
s.update(["郑裕玲"]) ==>{'郑裕玲', '刘嘉玲', '关之琳', '王祖贤'}
⑵删
s = {"刘嘉玲", '关之琳', "王祖贤","张曼玉", "李李若彤"}
s1 = s.pop() ==> 打印s1出来的是随机删除的那一项
print(s) ==> 打印出来的是随机删除后的s
s = {"刘嘉玲", '关之琳', "王祖贤","张曼玉", "李李若彤"}
s.remove("刘嘉玲") ==> {'关之琳', "王祖贤","张曼玉", "李李若彤"}
s = {"刘嘉玲", '关之琳', "王祖贤","张曼玉", "李李若彤"}
s.clear() 清空集合
⑶改
先使用remove删除,后用add 添加的方式来完成修改
⑷查询 set是可迭代对象,可以进行for循环
for el in s:
print(el)
三.深浅拷贝
1. 直接赋值 两个变量指向同一个对象
例如: (列表,进行赋值操作的时候,实际上是引用内存地址的赋值,内存中此时只有一个列表,两个变量指向一个列表) 字典也一样
lst = ["ABC","1234","DEF","567"]
lst1 = lst
lst1.append("979") 对其中一个进行操作,两个都跟着改变
print(lst1,lst) ==>打印出来的两个列表一样,都添加了"979"
2.浅拷贝 copy (只拷贝表面第一层的内容)
例如:
lst1=["何炅","杜海涛","周渝民"]
lst2 = lst1.copy
lst2.append("李嘉诚")
print(lst1,lst2) ==>lst1还是原来的内容,lst2在lst1的基础上又添加了"李嘉诚"
3.深拷贝 import copy (deepcopy)
例如:
import copy
lst = ["超人","七龙珠","葫芦娃",["金城武","王力宏","ABC"]]
lst2 = copy.deepcopy(lst) #把lst1扔进去进行深度拷贝,包括内部所有内容进行拷贝
lst[4].append("何炅")
print(lst,lst2) ==>lst 里面那层列表中添加了"何炅" ,lst2是想lst修改前的数值
#为什么要有深浅拷贝?
拷贝比创建对象的过程要快