字典和集合的相关操作

字典相关操作

关键词:
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() 		#清空字典,会直接变为一个空字典。
    
  

image

元组相关操作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.字符编码是什么?
  计算机原始是只认识 01,因为大家需要把01 换成大家可以看懂的显示,所以
  发明了 字符编码本。
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)
posted @   Python-moon  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示