首页 > 其他分享 >数据类型内置方法

数据类型内置方法

时间:2022-09-30 18:22:05浏览次数:49  
标签:username 内置 22 数据类型 dict user print kiki 方法

数据类型内置方法(二)

数据类型内置方法之字典

1.类型转换

​ dict()

​ 字典的转换一般不使用关键字 ,而是自己动手

2.字典必须要掌握的操作

user_dict = {'username':'kiki',
             'password':123456,
             'hobby':['music', 'listening', 'running']}
1.按k取值(不推荐使用)
    # print(user_dict['username'])  # kiki
    # print(user_dict['number'])  # KeyError: 'number'  当k不存在时就会报错

    # #2. 按内置方法get 取值 (推荐使用)
    # print(user_dict.get('username'))  # kiki
    # print(user_dict.get('number'))  # None
    # print(user_dict.get('username','抱歉,您输入的内容有误!!'))  #kiki   键存在的情况下获取对应的值
    # print(user_dict.get('number','抱歉,您输入的内容有误!!'))  # 抱歉,您输入的内容有误!!  
    当键不存在再默认返回None,可以通过第二个参数自定义


 3.修改数据值
    # print(id(user_dict))  # 2048528638144
    # user_dict['username'] = 'kiki'  # 键存在则修改对应的值
    # print(id(user_dict))  # 1255858725056
    # print(user_dict)  # {'username': 'kiki', 'password': 123456, 'hobby': ['music', 'listening', 'running']}

 4.新增键值对
    # user_dict['age'] = 18
    # print(user_dict)  # 键不存在则新增键值对
    # {'username': 'kiki', 'password': 123456, 'hobby': ['music', 'listening', 'running'], 'age': 18}

5.删除数据
    # del user_dict['username']  # 通过键直接删除键和键所对应的值
    # print(user_dict)  # {'password': 123456, 'hobby': ['music', 'listening', 'running']}

    # test = user_dict.pop('username')
    # print(test)  # kiki   删除的时键对应的值


 6. 统计字典中键值对的个数
	# print(len(user_dict))  # 3


 7.字典三剑客
    # print(user_dict.keys())   # dict_keys(['username', 'password', 'hobby'])  一次性获取字典所有的键
    # print(user_dict.values())  # dict_values(['kiki', 123456, ['music', 'listening', 'running']])   一次性获取字典所有的值
    # print(user_dict.items())   # dict_items([('username', 'kiki'), ('password', 123456), ('hobby', ['music', 'listening', 'running'])])   一次性获取字典的键值对数据,并列表的形式展示

    # for i in user_dict.items():
    #     k,v = i
    #     print(k,v)
    # for k,v in user_dict.items():
    #     print(k,v)
    """ 输出等于 
    username kiki
    password 123456
    hobby ['music', 'listening', 'running']
    """

 8.补充说明
    # print(dict.fromkeys(['sum', 'number', 'pwd'],123))  # {'sum': 123, 'number': 123, 'pwd': 123}  快速生成值相同的字典
    # test1 = dict.fromkeys(['sum', 'number', 'pwd'],[])
    # print(test1)   # {'sum': [], 'number': [], 'pwd': []}  只限值相同的字典
    # test1['sum'].append('56')
    # test1['number'].append('13141516')
    # test1['pwd'].append('316761999')
    # print(test1)  # {'sum': ['56', '13141516', '316761999'], 'number': ['56', '13141516', '316761999'], 'pwd': ['56', '13141516', '316761999']}
    """ 当第二个公共值[]是可变类型的时候,一定要注意,通过任何一键的修改都会影响所有"""

    # test2 = user_dict.setdefault('username', 'jason')
    # print(user_dict,test2)  # {'username': 'kiki', 'password': 123456, 'hobby': ['music', 'listening', 'running']} kiki  键存在则不修改,结果是键对应的值

    # test3 = user_dict.setdefault('age', 22)
    # print(user_dict,test3)  # {'username': 'kiki', 'password': 123456, 'hobby': ['music', 'listening', 'running'], 'age': 22} 22
    #   不存在则新增键值对  ,结果是新增的值

    # user_dict.popitem()  # 弹出简直队,后进先出
    # print(user_dict)  # {'username': 'kiki', 'password': 123456}

数据类型内置方法之元组

1.类型转换

​ tuple()

​ 支持for循环的数据类型都可以转成元组

2.元组必须掌握的方法

t1 = (11, 22, 33, 44, 55, 66, 77)
 1.索引取值
    print(t1[2])  # 33
    print(t1[0])  # 11
    print(t1[6])  # 77

 2.切片操作
    print(t1[0:5])  # (11, 22, 33, 44, 55)
    print(t1[:])  # (11, 22, 33, 44, 55, 66, 77)
    print(t1[:5])  # (11, 22, 33, 44, 55)

 3.间隔、方向
    print(t1[::2])  # (11, 33, 55, 77)

 4.统计元组内某个数据值出现的次数
    print(t1.count(11))  # 1

 5.统计元组内数据值的个数
    print(len(t1))  # 7

 6. 统计元组内指定数据值的索引值
    print(t1.index(22))  # 1

 7 元组内如果只有一个数据值,那么逗号不能少
    print((11,))  # (11,)

 8 .元组内索引绑定的内存地址不能被修改(注意区别  可变与不可变)
    l1 = (11, 22, 33, 44, [22, 33, 44, 55])   # 元组能不能修改,但列表中是可以的

 9.元组不能新增或删除数据

数据类型内置方法之集合

1.类型转换

​ set()

​ 集合内数据必须是不可变类型(整型、浮点型、字符串、元组)

​ 可变类型有列表,集合

2.集合需要掌握的方法

​ 去重

​ 关系运算

​ 注意:只有遇到上述两种需求才应该考虑使用集合

3.去重

    # l1 = {11, 33, 22, 55, 35, 78, 89, 33,11, 33,22, 44}
    # l2 = [11, 33, 22, 55, 35, 78, 89, 33,11, 33,22, 44]
    # l1 = set(l2)
    # l2 =list(l1)
    # print(l1)  # {33, 35, 11, 44, 78, 22, 55, 89}
    """ 集合的去重无法保留原先数据的排列顺序"""

4.关系运算

群体之间做差异化校验
eg: 两个微博账户之间,有不同的好友也有相同的好友
    # 关系运算
    l1 = {'康辉', '尼买提', '朱广权', '撒贝宁', '冰冰'}  # 用户1的好友列表
    l2 = {'康辉', '冰冰', '邹韵', '刘仲萌', '董卿'}  # 用户2的好友列表
    # 1.求两个人的共同好友
    print(l1 & l2)  #{'康辉', '冰冰'}

 2.求用户1独有的好友
    print(l1 - l2)  # {'撒贝宁', '朱广权', '尼买提'}

 3.求两个人所有的好友
    print(l1 | l2)  # {'尼买提', '邹韵', '董卿', '冰冰', '撒贝宁', '朱广权', '康辉', '刘仲萌'}

 4.求两个人各自独有的好友
    print(l1 ^ l2)  # {'朱广权', '尼买提', '刘仲萌', '邹韵', '撒贝宁', '董卿'}

 5.父集  子集
    print(l1 > l2)  # False
    print(l1<l2)  # False



字符编码

字符编码理论

	字符编码的理论很多,但是结论很少,代码使用也很短>>>>:JasonJi博客
计算机内部存储数据的是二进制数,只认识0和1,但我们却敲出各式各样的字符,是因为我们有字符编码本,是存储着一个数字跟字符的对应关系。
	字符编码发展史
	1.一家独大
		计算机是由美国人发明的,为了能够让计算机上识别英文
		需要发明一个数字跟英文字母的对应关系
		ASCII码;记录了英文字母跟数字的对应关系
			用8bit(1字节)来表示一个英文字符
			
	2.群雄割据
		中国人
			GBK码:记录英文、中文与数字的对应关系
			用至少16bit(2字节) 来表示一个中文字符
				很多生僻字还需要使用更多的字节
				英文还是用8bit(1字节)来表示
		日本人
			shift_JIS码:记录了英文、日文与数字的对应关系
		韩国人
          Euc_kr码:记录了英文、韩文与数字的对应关系
  		"""
  			每个国家的计算机使用的都是自己定制的编码本		
  			不同国家的文本数据无法直接交互 会出现"乱码"
  		"""
	
	
	3.天下一统
		unicode 万国码
			兼容所有国家语言字符
			中文起步就是两个字节来表示字符
		utf系列:utf8  utf16 ...
			utf系列用于优化unicode存储问题
			英文还是采用一个字节   中文三个字节
	

字符编码实操

1.转文档时,遇到乱码不要慌,切换编码慢慢试即可
2.编码与解码
	编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
		字符串.encode()
	解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
		bytes 类型数据.decode()
3.python2与python3差异
	python2默认的编码试ASCII
		1.文件名
			#encode:utf8
		2.字符串前面加u
			u'你好啊’
python 3 默认的编码是utf系列(unicode)


# -*- encoding:utf8 -*-
test= '工作就是要轻轻松松的工作'

# 编码
print(test.encode('utf8'))  # # bytes类型在python直接看成二进制即可
"""b'\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xb0\xb1\xe6\x98\xaf\xe8
\xa6\x81\xe8\xbd\xbb\xe8\xbd\xbb\xe6\x9d\xbe\xe6\x9d\xbe\
xe7\x9a\x84\xe5\xb7\xa5\xe4\xbd\x9c'
"""
res = test.encode('gbk')  # # 模拟网络数据

# 解码
res1 = res.decode('gbk')
print(res1)   # 工作就是要轻轻松松的工作

"""
b'\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xb0\xb1\xe6\x98\xaf\xe8\
xa6\x81\xe8\xbd\xbb\xe8\xbd\xbb\xe6\x9d\xbe\xe6\x9d\xbe\
xe7\x9a\x84\xe5\xb7\xa5\xe4\xbd\x9c'
"""

标签:username,内置,22,数据类型,dict,user,print,kiki,方法
From: https://www.cnblogs.com/zhanglanhua/p/16745806.html

相关文章