首页 > 编程语言 >python(内置方法操作2)

python(内置方法操作2)

时间:2022-10-01 08:00:07浏览次数:39  
标签:内置 jason 22 python 123 dict user print 操作

今日内容概要

  • 字典相关操作
  • 元组相关操作
  • 集合相关操作
  • 字符编码(理论)

今日内容总结

今天主要讲了一些昨日剩下的数据类型的内置方法以及一些相关的操作,一共有,字典。元组.集合,等几个数据类型,其中字典和集合是最特殊的,字典转换一般不使用关键字,而是需要自己动手转,关于字典有几个必须要掌握的几个操作,如下:

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

    user_dict ={
        'username':'jason',
        'password':'123',
        'hobby':['read','muisc']
    }
    
    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','没有哟,嘿嘿嘿'))  键存在的情况下, 获取对应的值
                      
                        
    print(user_dict.get('phon','没有哟,嘿嘿嘿')# 键不存在默认返回none,可以通过第二个参数自定义 # 没有哟,嘿嘿嘿

3.修改值数据

	print(id(user_dict))
	user_dict['username'] = 'tony' # 键存在则修改对应的值
	
	print(id(user_dict))
	print(user_dict)

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']}
#
# res = user_dict.pop('password')
# print(user_dict)     #{'username': 'jason', 'hobby': ['read', 'music', 'run']}
# print(res)  #123  pop讲password的值给弹出但是还是能重新给一个变量名来使用它

6.统计字典中键值对的个数

# print(len(user_dict)) #3

7.字典三剑客

# 1)print(user_dict.keys())  #一次性获取字典所有的键  dict_keys(['username', 'password', 'hobby'])
# 2)print(user_dict.values()) #一次性获取字典所有的值dict_values(['jason', 123, ['read', 'music', 'run']])
# 3)print(user_dict.items()) #一次性获取字典的键值对数据 dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
# for i in user_dict.items():
#     k, v = i         \ for k.v in user_dict.items()
#     print(i)              print(k.v)
# # ('username', 'jason')
# ('password', 123)
# ('hobby', ['read', 'music', 'run'])

8.补充说明

# print(dict.fromkeys(['name','wpd','hobby'],123)) # 快速生成值相同的字典  {'name': 123, 'wpd': 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)  # 键存在则不修改,结果是键对应的值  #{'name': ['jason', 123, 'study'], 'pwd': ['jason', 123, 'study'], 'hobby': ['jason', 123, 'study']}

# res = user_dict.stdefault('age',123)
# print(user_dict,res)  #键不存在则新增键值对,接过是新增的值
#  user_dict.popitem()  #弹出键值对,后进先出

元组相关操作

类型转换
teple()
ps:支持for循环的数据类型都可以转成元组

2.元组必须掌握的方法
t1 = (11,22,33,44,55,66)
1.索引取值
2.切片操作
3.间隔,方向
4.统计元组内数据的个数
print(len(t1))# 6
5.统计元组内某个数据值出现的次数
print(t1.index(22))
6.统计元组内指定数据值的索引值
print(t1.index(22))
7.元组内如果只有一个数据值那么逗号不能少
8.元组内索引绑定的内存地址不能被修改(注意区分,可变与不可变)
9.元组不能新增或删除数据

集合相关操作

1.类型转换
set()
集合内数据必须是不可变类型(整型,浮点型,字符串,元组)
集合内数据也是无序的,没有索引的概念
2.集合需要掌握的方法

去重
关系运算
PS:只有遇到上述两种需求的时候才应该考虑使用集合

3.去重

 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)

集合的去重无法保留原先数据的排列顺序

4.关系运算
群体之间做差异化效验
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.回忆计算机内部存储数据的本质
3.既然计算机内部只认识01,为什么我们却可以敲出人类各式各样的字符
肯定定在一数字符的对应关系,存储该关系的地方称为:字符编码本

4.字符编码的的发展史

	4.1一家独大
	计算机是由美国人发明的,因为计算机只能识别0101这样的二进制数,为了能让计算机识别英文,所以发明了提个数字和英文字母的对应关系,
	ASCLL码:记录了英文字母的对应关系
		用8bit(1字节)来表示一个英文字符
		
	4.2
	那时候其他国家购买计算机,发现自己国家的语言计算机识别不了,这时候就发明了各种各样的能和计算机对应关系的编码
	中国:
		GBK码:记录了英文,中文与狮子的关系
		用至少16bit(2字节)来表示一个中文字符
		 很多的生僻字还需要更多的字节来表示,但英文还是用8bit(1字节)来表示
		 
	日本
		shift_JIS:记录了英文日文与数字的对应关系
	韩国
	Euc_kr:记录了英文,韩文与数字的对应关系
	
‘每个国家的计算机的使用都是自己定制的编码本,不同国家的文本数据无法直接交互,就会出现‘乱码’的现象’

有句古话说的好,天下合久必分,分久必合各个国家与国家之间需要传递信息,就出现了文字不同编码不同,在计算机上所表示出来的含义也有所不同,这时候就出现了方便各国之间能够都能使用的'unicode',万国码:

这个编码能够兼容
国家的语言文字,起步就是用两个字节来表示字符

但是除了编码的问题还出现了储存的问题,因为语言的不同,发送到每个国家的数据表现形式也不同,就有了utf系列;(utf_8,utf_16...)
	用来优化unocide的储存问题,英文还是采用一个字节,中文使用三个字节

字符编码实操

1.针对乱码了不用慌,使用切换编码慢慢调试即可
、2.编码与解码

	编码就是将人类的字符按照指定的编码编成计算机能够读懂的0101组成的二进数
	语法 结构
		字符串.encode
	解码;将计算机能够读懂的数据按照人类能够读懂的数据进行解密
	语法结构
		bytes数据类型。decode()

小知识补充:
Python2与Python3在使用编码的差异

Python2默认的编码是ASCLL
 1.文件头
 2.字符串前面加u
 
 u'你好'

Python3默认的编码是utf系列(Unicode)

关于今日所学知识点应该加以了解和掌握并能够熟练使用

标签:内置,jason,22,python,123,dict,user,print,操作
From: https://www.cnblogs.com/qiguanfusu/p/16746707.html

相关文章

  • Python基本算法实现及总结归纳
    @目录冒泡排序快速排序插入排序选择排序希尔排序归并排序各个算法的时间复杂度附:二分法冒泡排序这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(......
  • 为标准操作POP2添加change document
    货铺QQ群号:834508274群里有人问相关问题,看群友回答,有点眼熟,但是自己想不起来了,然后翻看了记录才找到。这里再发一遍,嗯,温故而知新。用户提出个需求,在POP2的时候,发现没记录是......
  • 数据类型之内置方法
    数据类型之字典内置方法类型转换dict()字典的转换一般不使用关键字,而是自己动手转字典必须要掌握的操作user_dict={'username':'jason',......
  • 公共操作与推导式
    一、公共操作(一)运算符运算符描述支持的容器类型+合并字符串,列表,元组*复制字符串,列表,元组in是否存在字符串,列表,元组,字典notin是否不存在字符串......
  • 用递归函数和栈操作逆序栈
    用递归函数和栈操作逆序栈作者:Grey原文地址:博客园:用递归函数和栈操作逆序栈CSDN:用递归函数和栈操作逆序栈题目描述请设计一个算法实现逆序栈的操作,但是只能用递归函......
  • python的time库详解
    time库的使用:Python中内置了一些与时间处理相关的库,如time、datatime和calendar库。其中time库是Python中处理时间的标准库,是最基础的时间处理库。time库的功能如下:(1)计......
  • 【python基础教程】csv文件的写入与读取
      csv的简单介绍 CSV(CommaSeparatedValues),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。很多程......
  • Python基础(九) | time random collections itertools标准库详解
    ⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深......
  • Python基础(十) | Numpy详细教程
    第十一章Numpy库⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据......
  • devops学习笔记-jenkins实现基础CI/CD操作
    在之前的devops工具链中完成了jenkins以及gitlab配置之后,可以实现基础的CI/CD操作。操作流程整体的操作的流程如下所示:在开发环境配置好代码之后,将代码上传到gitlab,jenkins......