Python学习路程——Day08
目录字典相关操作
1、类型转换
'''
字典类型转换:
dict(需要转换的数据)
字典的转换一般不使用关键字进行,而是采用手动转换
'''
2、字典取值
'''
按k取值(不推荐使用)
语法结构:
变量名['k键']
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
print(user_dict['username'])
'''
get()方法取值(推荐使用)
语法结构:
变量名.get('k键')
get()和按K取值的区别:
按k取值,如果输入的k键字典内没有,程序会报错
get()方法取值,如果输入的k键字典内没有,会返回None
'''
print(user_dict.get('age'))
3、修改值的数据与新增键值对
'''
修改值的数据
语法结构:
变量名['K键'] = '修改的数据'
如果[]内的K键不存在,那么就会新增一个键值对
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
print(user_dict['username'])
user_dict['hobby'] = 'PingPang'
print(user_dict)
user_dict['sex'] = 'man'
print(user_dict)
4、删除数据
'''
删除数据
语法结构:
del 变量名['K键']
del 删除的数据不可再被调用
变量名.pop('K键')
pop()方法删除的数据还可以调用一次
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
del user_dict['username']
print(user_dict)
re = user_dict.pop('age')
print(user_dict)
print(re)
5、统计字典中键值对的个数
'''
统计字典中的键值对的个数
语法结构:
len()
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
long = len(user_dict)
print(long)
6、字典三剑客
'''
字典三剑客是指:
一次性获取字典中所有的键
语法结构:
变量名.keys()
一次性获取字典中所有的值
语法结构:
变量名.values()
一次性获取字典中所有的键值对数据
语法结构:
变量名.items()
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
print(user_dict.keys())
print(user_dict.values())
print(user_dict.items())
7、快速生成数据值相同的字典
'''
快速生成数据值相同的字典
语法结构:
dict.fromkeys(['K键1','K键2','K键3'],[数据值])
这个方法产生的数据值会赋给所有的K键,所有K键的数据值都是一样的
问题:怎么分别给k键赋值?
'''
dict_user = dict.fromkeys(['name', 'age', 'sex'], [])
print(dict_user)
dict_user['name'].append('HaiMan')
dict_user['age'].append('18')
dict_user['sex'].append('man')
print(dict_user)
8、向原有的字典中添加键值对
'''
字典中添加键值
语法结构:
变量名.setdefault('K键', '数据值')
如果字典中已经存在了你所添加的K键,那么就不会继续添加
,原有的数据值也不会被改变
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
res = user_dict.setdefault('sex', 'man')
print(user_dict, res)
9、弹出键值对
'''
弹出字典中的键值对
语法结构:
变量名.popitem() 该方法不可指定弹出那个键值对,
弹出键值对采取的是后进先出,即最先弹出最后一个键值对,以此往前类推。
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
user_dict.popitem()
print(user_dict)
元组相关操作
1、类型转换
'''
语法结构:
tuple()
支持for循环的数据类型都可以转成元组
'''
lst = [1, 2, 3, 4, 5, 6]
re = tuple(lst)
print(lst)
print(re)
2、索引取值
'''
语法结构:
变量名[下标]
'''
tup = (1, 2, 3, 4)
print(tup[0])
3、间隔、方向
'''
语法结构:
变量名[开始下标: 结束下标: 步长]
'''
tup = (1, 2, 3, 4)
print(tup[1: 3: 2])
4、统计元组内数据值的个数
'''
len(变量名)
'''
tup = (1, 2, 3, 4)
print(len(tup))
5、统计元组内某个数据值出现的次数
'''
统计元组内某个数据值出现的次数
变量名.count() 括号中填入需要统计的数据值
'''
tup = (1, 2, 3, 4)
print(tup.count(2))
6、统计元组内指定数据值的索引值
'''
统计元组内指定数据值的索引值
语法结构:
变量名.index() 括号内填入需要索引值的数据值
'''
tup = (1, 2, 3, 4)
print(tup.index(3))
7、元组的注意事项
1、元组内如果只有一个数据值那么逗号不能少
2、元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
3、元组不能新增或删除数据
集合相关操作
1、类型转换
'''
set()
集合内数据必须是不可变类型(整型、浮点型、字符串、元组)
集合内数据也是无序的,没有索引
'''
set_num = [1, 2, 3, 4, 5, 6, 7]
re = set(set_num)
print(re)
2、去重
'''
语法结构:
set()
直接使用类型转换就可以完成去重操作
集合去重是无法保留原有的数据的
'''
set_1 = {11, 11, 11, 22, 22, 11, 22, 11, 22, 33, 22}
set_1 = set(set_1)
print(set_1)
3、关系运算
群体之间多差异化校验
'''
& 作用:
求共同拥有的数据值
& 的应用
eg:每个平台的用户ID都是唯一的
该运算符的结果是显示相同的数据值
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name & name1)
'''
- 作用
求独有的数据值
- 的应用
eg:两个人好友列表内,各自独有的好友
该运算结果显示前面那个变量独有的数据
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name - name1)
'''
| 作用
求所有的数据值
| 的应用
eg:两个人好友列表内,所有的好友
该运算结果显示两个变量的全部数据值(重复的只显示一个)
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name | name1)
'''
^ 作用
求所有的数据值
^ 的应用
eg:两个人好友列表内,各自独有的好友
该运算结果显示两个变量各自独有的数据值
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name ^ name1)
4、父集、子集
'''
父集、子集表示包含与被包含
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar', 'Jack', 'Mariya'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name > name1)
字符编码理论
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)
标签:Day08,路程,Python,dict,user,print,键值,数据,字典
From: https://www.cnblogs.com/HaiMan/p/16745833.html