1.编码
加载到内存里用的是unicode. 硬盘和网络传输用的是utf-8或者GBK
encode() 编码. 获取到的是编码之后的结果,机器能看懂的底层bytes 。decode() 解码. 把bytes编程我们熟悉的字符串,人能看懂的高级语言
2.列表知识
2.1列表常用的方法
操作:
sort(reverse=True) 排序
reverse() 翻转
len() 长度
count() 数数
2.2元祖
tuple, 只读列表, 由()组成. 不可变的
索引和切片以及for循环
解构, 解包
range(10) 0-9
range(5, 10) 5-9 #默认步长为1,顾头不顾尾
range(5,10,3) 5,8 #步长为3,顾头不顾尾
2.3 字典
由{}表示. 存储key:value 键值对. 根据key来计算hash值.找到对应的内存地址。key必须是可hash的. 不可变的. int, str, 元组, bool
student={'name':'wangsiyu','age':18}
student['phone']='17605811524' #增加一个key,value
student.pop('age') #利用pop()方法删除一个内容
del student['name'] #利用del删除指定
student.popitem() #删除最后一个
student.clear() #清空字典
student['name']='nezha' #修改字典
print(student['name'] ) #查询字典
print(student.get('phone')) #查询字典
print(student.setdefault('hoppy','run')) #setdefault() 先执行新增那个流程. 然后.获取到key对应的值
print(student.keys()) #keys() 获取所有的key.返回列表
print(student.values()) #values() 获取所有的values返回列表
print(student.items()) #([('name', 'wangsiyu'), ('age', 18), ('phone', '17605811524')])
2.4 is 和 == 区别
== 判断两边的值
is 判断内存地址
2.5 关于字典键值的遍历
dic={'wangsiyu':1418230212,'马云':123456789}
for k,v in dic.items():
print(k,v)
for k in dic.keys():
print(k)
for v in dic.values():
print(v)
2.6有如下一个列表 li= [11,22,33,44,55,66,77,88,99,90],
将所有大于66 的值保存至字典的第一个key中,将小于66 的值保存至第二个key的值中。即: {'k1': 大于66的所有值列表,'k2': 小于66的所有值列表}
第一种方法
li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
dict={'k1':[],'k2':[]}
for i in li:
if i >66:
dict['k1'].append(i)
else:
dict['k2'].append(i)
print(dict)
第二种方法,用setdefault(key,value)
li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
dict={}
for i in li:
if i >66:
dict.setdefault('k1',[]).append(i)
else:
dict.setdefault('k2', []).append(i)
print(dict)
2.7 GBK编码和UTF-8编码相互转化
a='神奇'
#对a进行编码
b=a.encode('gbk') #b'\xc9\xf1\xc6\xe6' 一个汉字两个字节
c=a.encode('utf-8') # b'\xe7\xa5\x9e\xe5\xa5\x87' 一个汉字三个字节
#解码
print(b.decode('gbk')) #神奇
print(c.decode('utf-8')) #神奇
![](https://img.haomeiwen.com/i10622766/31d818ce504871de.gif)
网友评论