目录
字典相关操作
- 类型转换
dict() 字典的转换一般不使用关键字 而是自己动手转
- 字典的操作方法
user_dict = {
'username':'jason',
'password':'123',
'hobby': ['read', 'music', 'run']
}
# 1.按k取值(不推荐使用)
print(user_dict['username']) # jason
print(user_dict['phone']) # k不存在会直接报错
# 2.按内置方法get取值(推荐使用)
print(user_dict.get('username')) # jason
print(user_dict.get('age')) # None
print(user_dict.get('username','没有')) # jason 键存在的情况下获取对应的值
print(user_dict.get('phone', '没有')) # 没有 键不存在默认返回None 可以通过第二个参数自定义
# 3.修改值数据
print(id(user_dict)) # 2496773313344
user_dict['username'] = 'tony'
print(id(user_dict)) # 2496773313344
print(user_dict) # {'username': 'tony', 'password': '123', 'hobby': ['read', 'music', 'run']}
# 4.新增键值对
user_dict['age'] = 18 # 键不存在则新增键值对
print(user_dict) # {'username': 'jason', 'password': '123', 'hobby': ['read', 'music', 'run'], 'age': 18}
# 5.删除数据
del user_dict['username']
print(user_dict) # {'password': '123', 'hobby': ['read', 'music', 'run'], 'age': 18}
res = user_dict.pop('password')
print(user_dict) # 'hobby': ['read', 'music', 'run'], 'age': 18}
print(res) # 123
# 6.统计字典中键值对的个数
print(len(user_dict)) # 3
# 7.字典三剑客
print(user_dict.keys()) # dict_keys(['username', 'password', 'hobby']) 一次性获取字典所有的键
print(user_dict.values()) # dict_values(['jason', '123', ['read', 'music', 'run']]) 一次性获取字典所有的值
print(user_dict.items()) # dict_items([('username', 'jason'), ('password', '123'), ('hobby', ['read', 'music', 'run'])]) 一次性获取字典的键值对数据
for i in user_dict.items():
k, v = i
print(k, v)
# 8. 补充说明
print(dict.fromkeys(['name', 'pwd', 'hobby'], 123)) # 快速生成值相同的字典 {'name': 123, 'pwd': 123, 'hobby': 123}
res = dict.fromkeys(['name', 'pwd', 'hobby'], [])
print(res) # {'name': [], 'pwd': [], 'hobby': []}
res['name'].append('jason')
res['pwd'].append(123)
res['hobby'].append('study')
print(res) # {'name': ['jason', 123, 'study'], 'pwd': ['jason', 123, 'study'], 'hobby': ['jason', 123, 'study']}
'''
当第二个公共值是可变类型的时候 一定要注意 通过任何一个键修改都会影响所有
'''
res = user_dict.setdefault('username', 'tony')
print(user_dict,res)
res = user_dict.setdefault('age', 123)
print(user_dict, res)
元组的相关操作
- 类型转换
tuple() ps:支持for循环的数据类型都可以转成元组
- 元组的操作方法
t1 = (11, 22, 33, 44, 55, 66)
# 1.索引取值
# 2.切片操作
# 3.间隔、方向
# 4.统计元组内数据值的个数
print(len(t1)) # 6
# 5.统计元组内数据值出现的次数
print(t1.count(11)) # 1
# 6.统计元组内指定数据值的索引值
print(t1.index(22)) # 1
# 7.元组内如果只有一个数据值那么逗号不能少
# 8.元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
# 9.元组不能新增或删除数据
集合相关操作
- 类型转换
类型转换: set() 集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
集合内数据是无序的 没有索引的概念
- 集合需要掌握的方法
只有遇到去重和关系运算这两种需求的时候才应该考虑使用集合
去重
s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
s1 = set(l1)
l1 = list(s1)
print(l1)
关系运算
& 共同的部分
- 独有的部分
| 全部的部分(和)
^ 独有部分的和
群体之间做差异化校验
eg: 两个微信账户之间 有不同的好友 有相同的好友
f1 = {'jason', 'tony', 'jerry', 'oscar'} # 用户1的好友列表
f2 = {'jack', 'jason', 'tom', 'tony'} # 用户2的好友列表
# 1.求两个人的共同好友
print(f1 & f2) # {'jason', 'tony'}
# 2.求用户1独有的好友
print(f1 - f2) # {'jerry', 'oscar'}
# 3.求两个人所有的好友
print(f1 | f2) # {'jason', 'jack', 'tom', 'tony', 'oscar', 'jerry'}
# 4.求两个人各自独有的好友
print(f1 ^ f2) # {'oscar', 'tom', 'jack', 'jerry'}
# 5.父集 子集
print(f1 > f2)
print(f1 < f2)
字符编码理论
1.字符编码只针对文本数据
2.计算机存储数据的本质是二进制,因为计算机只认识0和1,在和计算机交互的时候,用的是我们能够读懂的语言
字符编码的发展史:
(1).一家独大
计算机是美国人发明的,由于计算机值认识0和1,于是定义了字符编码,但是只记录了英文字符与数字之间的对应关系,于是有了ASCII码,内部只记录英文字符和数字之间的对应关系
(2).群雄割据
越来越多国家使用计算机之后,各个国家都开发了属于自己国家的字符编码
中国:GBK编码,内部记录了中文字符,英文字符,和数字之间的对应关系,2bytes起步存储中文
韩国:Euc_kr码,内部记录了韩文字符、英文字符与数字之间的对应关系。
日本:shift_JTS码,内部记录了日文字符、英文字符与数字之间的对应关系。
(3).万国码:unicode,兼容各个国家的字符。原有的字符全部使用2bytes起步存储。
UTF家族,是针对unicode的优化版本,常用的是utf-8。英文1bytes存储,其它统一3bytes存储字符。
内存使用的是Unicode,硬盘使用utf8。
字符编码实操
1.针对乱码不要慌 切换编码慢慢试即可
2.编码与解码
编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
字符串.encode()
关键字:encode
解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
bytes类型数据.decode()
关键字:decode
3.python2与python3差异
python2默认的编码是ASCII:
1.文件头
# encoding:utf8
2.字符串前面加u
u'你好啊'
python3默认的编码是utf系列(unicode)
标签:编码,内置,jason,字符,数据类型,123,dict,user,print
From: https://www.cnblogs.com/wxlxl/p/16745258.html