神奇语言 python 再谈编码 深浅拷贝

再谈编码:

unciode 内存
硬盘 utf -8字节 存储 传送

s = "澳门"
s1 = s.encode("utf-8") #编码 编码集
print(s1) #b'\xe6\xbe\xb3\xe9\x97\xa8'
s2 = s.encode("gbk")
# print(s2) #b'\xb0\xc4\xc3\xc5'
print(s1.decode("utf-8")) # 解码有意义有意义 转回来
用什么编就用什么解
例题
s = "你好"
s1 = s.encode("utf-8")
# print(s1)
print(s1.decode("utf-8"))

基础数据:

列表:

li = [1,2,3,4,5] for i in li : # [2, 4] 清空不完 li.remove(i) print(li) 列表 用for删除 第一种方法 for i in range(len(li)): li .pop() print(li) 第二种方法 for i in li: li.clear() print(li) 第三种方法 li = [1,2,3,4,5] l2 = [] for i in li: l2.append(i) #使l2=[1,2,3,4,5] for j in l2: li.remove(j) #remove根据内容删除 li =[1,2,3,4,5] -j(是for把l2里的元素给了j) print(li)


字典:
字典for删除
dic = {1,2,3,4,5}
lst = []
for i in dic:
dic.append(i)
for j in lst:
dic.pop(j)
print(dic)

dic = {1,2,3,4,5}
print(dict.fromkeys("您好"))
第一个位置是可迭代对象,也就是字典的键
第二个位置不写是None 也就是字典的值

 

1. 基础数据类型补充
大多数的基本数据类型的知识.已经学完了
join()
"*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串
split() 切割. 切割的结果是列表

列表和字典: 都不能在循环的时候直接删除
把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)

fromkeys()
坑1: 返回新字典. 不会更改老字典
坑2: 当value是可变的数据类型. 各个key共享同一个可变的数据类型. 其中一个被改变了. 其他都跟着变

 

深浅拷贝:

st1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅"]
# lst2 = lst1.copy()  # 拷贝, 抄作业, 可以帮我们创建新的对象,和原来长的一模一样, 浅拷贝
#
# print(id(lst1))
# print(id(lst2))
浅拷贝. 只拷贝第一层内容

 引入一个模块
import copy

lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
lst2 = copy.deepcopy(lst1) # 深拷贝: 对象内部的所有内容都要复制一份. 深度克隆(clone). 原型模式

print(id(lst1))
print(id(lst2))
 

 

posted on 2019-01-07 19:26  蠢才  阅读(106)  评论(0编辑  收藏  举报

导航