今日内容
字典的相关操作内置方法
1.类型转换
关键字 dict()
字典使用转换太麻烦了,所以一般不推荐使用,建议手动转
2.字典必须掌握的操作 # 这是按k取值不推荐
user_dict = {'username': 'pig', 'password': 111,
'happy': ['ren', 'misuy', 'rong']}
print(user_dict['username']) ## pig
print(user_dict[poiu]) # k不在字典会直接报错
#### 这是按内置方法get取值
print(user_dict.get('username')) # pig
print(user_dict.get('kkkkkkk')) # None
print(user_dict.get('kkkkk', '你瞎了吗')) # 你瞎了吗
## 内置方法get取值如果字典内没有键会默认返回None,所以可以通过第三行代码展示第二个参数自定义返回名称
### 这是修改数据值
user_dict['username'] = 'oiuio'
print(user_dict) # username 中的pig 修改成 oiuio
### 这是新增键对值
user_dict['moye'] = 1996
print(user_dict) # 会在字典内最末端增加 'moye': 1996
### 这是删除数据
del user_dict['happy'] # 删除happy
print(user_dict)
res = user_dict.pop('username')
print(user_dict) # 和上面一样的意思 删除username
print(res) # pig # 只要username所对应的值
### 这是统计字典中统计键值对的个数
print(len(user_dict)) # 3个
### 字典三大常用
1.一次性获取所有键
print(user_dict.keys()) # 值去掉取键
# dict_keys(['username', 'password', 'happy'])
2.一次性获取字典所有的值
print(user_dict.values()) # 键去掉取值
# dict_values(['pig', 111, ['ren', 'misuy', 'rong']])
3.一次性获取所有键值对的数据值
print(user_dict.items())
# dict_items([('username', 'pig'), ('password', 111), ('happy', ['ren', 'misuy', 'rong'])])
'当第二个公共值是可变类型的时候 一定要注意 通过任何一个键修改都会影响所有'
元组相关操作
1.类型转换
tuple()
只要是支持for循环的数据类型都可以转换成元组
2.元组必须掌握的方法
t1 = (11, 22, 33, 44, 55, 66)
# 1.索引取值
print(t1[]) 填入需要的取值 起始值为0 支持复数
# 2.切片操作
print(t1[ : ]) 默认顺序从左往右 可以使用复数修改方向
# 3.间隔,方向
print(t1[ : : ]) 第三个不填默认是1
# 4.统计元组内的数据值个数
print(len(t1))
# 5.统计元组内指定数值出现次数
print(t1.count(11))
# 6.统计元组内指定数据值的索引值
print(t1.index(22))
# 7.元组内只有一个值逗号不能少
# 8.元组内索引绑定的内存地址不能被修改
# 9.元组不能新增或者删除数据
集合相关操作
1.类型转换
set()
集合内数据必须是不可变类型(整形 浮点型 字符串 元组)
集合内数据是无序数据 没有索引的概念
2.集合需要掌握方法
去重
关系运算
只有碰到上述两种需求才考虑使用集合
3.去重
t1 = {1, 2, 3, 1, 1, 1, 2, 2, 2, }
l1 = [1, 6, 1, 4, 6, 3, 8, 9, 9, ]
t1 = set(l1)
l1 = list(s1)
print(l1)
集合的去重无法保留原先数据的排列顺序
4.关系运算
全体之间做差异化校验
eg:两个QQ号之间有不同的好友 和相同的好友
w1 = {'pig', 'jason', 'jerry', 'oscar'} # 用户1的好友列表
w2 = {'pig', 'jason', 'tom', 'tony'} # 用户2的好友列表
# 1.求两个人的共同好友
print(w1 & w2) # {'pig', 'jason'}
# 2.求用户1独有的好友
print(w1 - w2) # {'jerry', 'oscar'}
# 3.求两个人所有的好友
print(w1 | w2)
# {'jerry', 'tom', 'pig', 'tony', 'oscar', 'jason'}
# 4.求两个人各自独有的好友
print(w1 ^ w2)
# {'oscar', 'jerry', 'tom', 'tony'}
# 5.父集 子集
print(w1 > w2) # False
print(w1 < w2) # False
字符编码理论
该知识点理论特别多 但是结论很少 代码使用也很短
1.字符编码只针对文本数据
2.回忆计算机内部存储数据的本质
3.既然计算机内部只认识01 为什么我们却可以敲出人类各式各样的字符
肯定存在一个数字跟字符的对应关系 存储该关系的地方称为>>>:字符编码本
4.字符编码发展史
4.1.一家独大
计算机是由美国人发明的 为了能够让计算机识别英文
需要发明一个数字跟英文字母的对应关系
ASCII码:记录了英文字母跟数字的对应关系
用8bit(1字节)来表示一个英文字符
4.2.群雄割据
中国人
GBK码:记录了英文、中文与数字的对应关系
用至少16bit(2字节)来表示一个中文字符
很多生僻字还需要使用更多的字节
英文还是用8bit(1字节)来表示
日本人
shift_JIS码:记录了英文、日文与数字的对应关系
韩国人
Euc_kr码:记录了英文、韩文与数字的对应关系
"""
每个国家的计算机使用的都是自己定制的编码本
不同国家的文本数据无法直接交互 会出现"乱码"
"""
4.3.天下一统
unicode万国码
兼容所有国家语言字符
起步就是两个字节来表示字符
utf系列:utf8 utf16 ...
专门用于优化unocide存储问题
英文还是采用一个字节 中文三个字节
字符编码实际操作
2.编码与解码
编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
字符串.encode()
解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
bytes类型数据.decode()
3.python2与python3差异
python2默认的编码是ASCII
1.文件头
# encoding:utf8
2.字符串前面加u
u'你好啊'
python3默认的编码是utf系列(unicode)
标签:username,内置,元组,dict,user,print,pig,字典
From: https://www.cnblogs.com/lsl1/p/16745630.html