字典相关操作
关键词:
dict()
字典一般不建议直接转换,而是建议自己动手转
1.字典按k取值
user_dict = {'username': '张无忌',
'password': '12366',
'hobby': '乾坤大挪移'}
print(user_dict['username']) #字典可以直接按k健 取值
print(user_dict['good']) #如果没有健,会直接报错
2.get方法取值
print(user_dict.get('hobby')) #也可以直接取到get健 对应的值
print(user_dict.get('good')) #如果没有健,会返回None
print(user_dict.get('good','暂无信息'))
print(user_dict.get('good',111))
print(user_dict.get('good',[12.22]))
#暂无数据, 当get语法找不到健,也可以设置回馈的信息,可以反馈多种类型
user_dict = {'username': '张无忌',
'password': '12366',
'hobby': '乾坤大挪移'}
3.修改数据值
user_dict['hobby'] = '九阳神功' # 可以直接根据健来重新给这个健赋值
4.增加数据值
user_dict['love'] = '周芷若' # 若 健 不存在,则会直接新增成为对应的键 值
print(user_dict) #{'username': '张无忌', 'password': '12366', 'hobby': '九阳神功', 'love': '周芷若'}
5.删除数据
del
del user_dict['love'] #可以直接根据健 去删除对应的建和值
pop
res = user_dict.pop('hobby') #可以根据健去删除 对应的健和值,但是可以看到删除的值是什么
print(res)
6.统计字典中所有健对 个数
len
user_dict = {'username': '张无忌',
'password': '12366',
'hobby': '乾坤大挪移'}
print(len(user_dict)) # 3 查询到只有3对 健对
7.一次性获取字典所有的健
keys
print(user_dict.keys())#['username', 'password', 'hobby', 'love']已列表的形式反馈
8.一次性获取字典所有的值
values
print(user_dict.valuse()) #['张无忌', '12366', '九阳神功', '周芷若'] 已列表的形式反馈
9.一次性获取字典所有的值对数据
items
print(user_dict.items()) # [('username', '张无忌'), ('password', '12366'), ('hobby', '九阳神功'), ('love', '周芷若')] 已列表的形式反馈 里面是元组 ,
10.清空字典
clear
user_dict.clear() #清空字典,会直接变为一个空字典。

元组相关操作tuple
1.类型转换
tuple()
支持for循环的数据类型都可以转成元组, # 列表 字符串 字典 等
2.引索取值,切片操作
t1 = (11,22,33,77,88,99)
print(t1[1]) #11
print(t1[-1]) #99
print(t1[0:5]) #11,22,33,77,88 起始位 0 到 5
print(t1[-1:-3:-1]) # 99,88 起始位-1 到-3 方向步长 -1
print(t1[::2]) # 11,33,88 从左到右 步长为2
3.统计元组内数据值的个数
len
print(len(t1)) # 6
4.统计元组内某个数据出现的次数
count
print(t1.count(1)) # 没有则返回0
print(t1.count(11)) # 1 出现了一次
5.统计出元组内某个数据的索引值
index
print(t1,index(11)) # 0 11所在索引位置为0
6,元组内只要有一个数据值,那么逗号都不能减少
t2 = (1,)
t3 = (1)
print(type(t2)) # 元组类型
print(type(t3)) # 整数类型
注意事项:元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
元组不能新增或删除数据
集合相关操作
1.类型转换
set()
集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
集合内数据也是无序的 没有索引的概念
字典,列表不可以进行集合操作
2.去重作用
l1 = [11,22,33,44,55]
l2 = [1,2,3,44,55]
l1 = l1 + l2
l1 = set(l1)
print(l1) #{33, 1, 2, 3, 11, 44, 22, 55} 会得到一个去重的集合。
'''集合的去重无法保留原先数据的排列顺序'''
3,关系运算
群体之间做差异化校验
eg;两个集合中有相同的数据
s1 = {11,22,33,4,5,6,7}
s2 = {1,2,3,4,5,6,7}
# 求两个集合共同有用的数据
print( s1 & s2 ) # 4567
# 求s1独有的数据
print( s1 - s2) 11 22 33
# 求s2独有的数据
print(s2 - s1 ) 123
# 求两个集合的合并
print(s1 | s2) {33, 1, 2, 4, 5, 6, 7, 3, 11, 22}
# 求两个集合独有的数据
print(s1 ^ s2) {1, 2, 3, 33, 11, 22}
字符编码理论知识
1.字符编码只针对文本数据
2.字符编码是什么?
计算机原始是只认识 0 和 1,因为大家需要把0 和 1 换成大家可以看懂的显示,所以
发明了 字符编码本。
3.字符编码发展史
一家独大
计算机是由美国人发明的 为了能够让计算机识别英文
需要发明一个数字跟英文字母的对应关系
ASCII码:记录了英文字母跟数字的对应关系
用8bit(1字节)来表示一个英文字符
群雄割据
中国人
GBK码:记录了英文、中文与数字的对应关系
用至少16bit(2字节)来表示一个中文字符
很多生僻字还需要使用更多的字节
英文还是用8bit(1字节)来表示
日本人
shift_JIS码:记录了英文、日文与数字的对应关系
韩国人
Euc_kr码:记录了英文、韩文与数字的对应关系
"""
每个国家的计算机使用的都是自己定制的编码本
不同国家的文本数据无法直接交互 会出现"乱码"
"""
4,字符编码的统一,
unicode. 万国码 可以兼容所有国家语言和字符。
常用utf系列:
utf-8
utf-16
字符编码实际作用
1.针对乱码不要慌 切换编码慢慢试即可,(unicode,utf-8等)
2.编码与解码
编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
字符串.encode()
解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
bytes类型数据.decode()
3.python2与python3差异
python2默认的编码是ASCII
1.文件头
# encoding:utf8
2.字符串前面加u
u'你好啊'
python3默认的编码是utf系列(unicode)