首页 > 其他分享 >字典,元组,集合与字符编码

字典,元组,集合与字符编码

时间:2022-09-30 17:25:38浏览次数:61  
标签:编码 tank name 元组 123 dict l1 print 字典

字典,元组,集合内置方法

字典内置法

类型转换
语法: dict()
一般情况下不用dict转字典,主要是自己动手转字典。基本上不用
 print(dict(11))  # 整型  报错
 print(dict(11.11))  # 浮点型  报错
 print(dict('tank'))  # 字符串  报错
 print(dict([11, 22, 33, 44]))  # 列表 报错
 print(dict((11, 22, 33, 44)))  # 元组 报错
 print(dict({11, 22, 33, 44}))  # 集合 报错

必须掌握的操作

按k取值
name_dict = {'name’:'tank', 'age':123 }
print(name_dict['name']) #  tank
不推荐使用

内置方法get取值(推荐使用)

.get
name_dict = {'name’:'tank', 'age':123 }
print(name_dict.get('username'))  # tank
print(name_dict.get['hobby'])  # 返回None
print(name_dict.get('age', '没有哦'))  # 123,键存在的情况下获取对应的数据值
print(name_dict.get('hobby', '真没有'))  #键值不存在返回None 根据第二个参数返回真没有

修改键值对

name_dict = {'name’:'tank', 'age':123}
name_dict['name'] = 'jason'  # 修改name键对应的值为jason
print(name_dict)  # jason             
"""键存在则修改对应的键值,键不存在则新增键值对"""
name_dict['hobby'] = 'rap'  # 修改hobby键对应的值为rap,因为字典里不存在hobby键值,则新增键值对

删除数据

可以使用前面学过的, del .remove .pop 来操作
name_dict = {'name':'tank', 'age': 123}
del name_dict['name']  # del删除name_dict表中的name键值
print(name_dict)  # {'age': 123}
---------------------------------------------------------------------------------
.pop方法
name_dict = {'name':'tank', 'age': 123}
res = name_dict.pop('age')  # .pop弹出的数据age绑定一个res变量名
print(name_dict)  # {'name': 'tank'}
print(res) # 123           

字典三剑客

.keys
他可以一次性获取字典所有的键,结果支持for循环
name_dict = {'name':'tank', 'age': 123}
print(name_dict.keys())  # 一次性获取字典所有的键,dict_keys(['name', 'age']) 键就是k
---------------------------------------------------------------------------------
.values
一次性获取字典所有的值
name_dict = {'name':'tank', 'age': 123}
print(name_dict.values())  # 一次性获取字典所有的值,dict_values(['tank', 123])
---------------------------------------------------------------------------------
.items
一次获取字典的键值对数据(生成的是元组)
name_dict = {'name':'tank', 'age': 123}  #一次性获取字典的所有的键值对
print(name_dict.items())  #dict_items([('name', 'tank'), ('age', 123)])
小知识:
name_dict = {'name':'tank', 'age': 123}
for i in name_dict.items():  #  i 在字典中循环取键对值
    print(i)  #('name', 'tank')
            #('age', 123)
高级玩法: #解压赋值
for i,j in name_dict.items():  # 对应的变量名获取解压赋值
    print(i,j)  # name tank     age 123
---------------------------------------------------------------------------------
详解:    
for i in name_dict.items():  # i 在字典中循环取键对值
    j, k = i  # j k变量名 解压赋值 i
    print(j, k)  # name tan  age 123

字典内置补充说明

.fromkeys
快速生产值相同的字典
print(dict.fromkeys(['name', 'pwd', 'hobby'], 123))
# {'name': 123, 'pwd': 123, 'hobby': 123}
res = doct.fromkeys(['name', 'pwd', 'hobby'], [])
# {'name': [], 'pwd': [], 'hobby': []}
print(res)
前方注意有大坑,[]公用数据是个可变类型,所有的键
'name', 'pwd', 'hobby' 指定的对象都是[],修改一个所有都会改。[]列表是个可变量类型。
不可变类型 修改后可以逐个更改

---------------------------------------------------------------------------------
.setdefault 
name_dict = {'name':'tank', 'age': 123}
name_dict.setdefault('name', 'tanke')  # {'name': 'tank', 'age': 123}
键存在就不做修改,键不存在则新添加一个 键值对
name_dict.setdefault('hobby', 'rap')
print(name_dict)  # {'name': 'tank', 'age': 123, 'hobby': 'rap'}

元组内置操作

类型转换

tuple()
支持for循环的数据类型都可以转成元组
print(tuple('owen'))  # 字符串
print(tuple([11, 22, 33, 44]))  # 列表
print(tuple({'name': 'owen'}))  # 字典
print(tuple({11, 22, 33, 44}))  # 集合

元组的特性(自己+的)

当元组内只有一个元素的时候,根据type查看都不是元组型
而在但个元素后加上逗号,他们才能显示为元组型
'''所以在存储数据时,如果内部只有一个元素,加个逗号'''

索引,切片,间隔,统计个数,成员运算,统计某个元素出现的次数

1、索引取值
l1 = (1, 2, 3, 4, 56)
print(l1[2])  # 结果为3
---------------------------------------------------------------------------------
2、切片操作
l1 = (1, 2, 3, 4, 56)
print(l1[0:2])  # 结果为(1, 2)
---------------------------------------------------------------------------------
3、间隔
l1 = (1, 2, 3, 4, 56)
print(l1[0:4:2])  # 结果为(1, 3)
---------------------------------------------------------------------------------
4、统计元组内元素的个数(len)
l1 = (1, 2, 3, 4, 56)
print(len(l1))  # 结果为5
---------------------------------------------------------------------------------
5、成员运算(in)
l1 = (1, 2, 3, 4, 56)
print(56 in l1)  # 结果为true
---------------------------------------------------------------------------------
6、统计某个元素出现的次数(count)
l1 = (1, 2, 3, 4, 56)
print(l1.count(2))  # 结果为1
---------------------------------------------------------------------------------
1.统计元组内指定数据的索引值
l1 = (1, 2, 3, 4, 56)
print(l1.index(1))  # 结果为 0

集合相关操作

类型转换

print(set(11))  # 报错
print(set(11.11))  # 报错
print(set('tank'))  # {'t', 'a', 'n', 'k'}
print(set([11,22,33,44]))  # {33, 11, 44, 22}
print(set({'name':'tank'}))  # {'name'}
print(set((11,22,33)))  # {33, 11, 22}
print(set(True))  # 报错
'''整数、浮点型、布尔值无法转换,集合内元素只能是不可变的类型'''
集合也是无序的没有索引概念

去重

a1 = {1, 2, 2, 2, 2, 2, 5, 4, 4, 4, 6, 6, 6, 6, }
print(a1)  # {1, 2, 4, 5, 6}

关系运算

2、关系运算
  判断两个群体的差异,是否有相同的、不同的
l1 = {'owen', 'kery', 'mark', 'jerry'}  # 小李的好友列表
l2 = {'mark', 'tom', 'jerry', 'jack'}  # 小王的好友列表
 # 1.求两个人的共同好友(&) 
print(l1 & l2)  # {'mark', 'jerry'}
 # 2.求小李的单独好友(-)
print(l1 - l2)  # {'owen', 'kery'}
 # 3.求两个人所有的好友(|)
print(l1 | l2)  # {'mark', 'jerry', 'tom', 'owen', 'jack', 'kery'}
 # 4.求两个人各自的好友(^)
print(l1 ^ l2)  #{'tom', 'owen', 'jack', 'kery'}

字符编码理论

1、编码和解码
  编码 (encode) :
    将人类能够理解的字符编码成计算机能够直接读懂的字符
  解码 (decode):
    将计算机能够理解的字符解码成人类能够直接读懂的字符
   编码  encode  
    l1 = '小嘛小二郎 背着书包上学堂'
print(l1.encode('utf8'))
结果 b'\xe5\xb0\x8f\xe5\x98\x9b\xe5\xb0\x8f\xe4\xba\x8c\xe9\x83\x8e \xe8\x83\x8c\xe7\x9d\x80\xe4\xb9\xa6\xe5\x8c\x85\xe4\xb8\x8a\xe5\xad\xa6\xe5\xa0\x82'
"""
字符窜前面如果加了字母'b'表示该数据类型为bytes类型
bytes类型可以看成二进制 """
------------------------------------------------------------------------------------
解码  decode 
l2 = b'\xe5\xb0\x8f\xe5\x98\x9b\xe5\xb0\x8f\xe4\xba\x8c\xe9\x83\x8e\xe8\x83\x8c\xe7\x9d\x80\xe4\xb9\xa6\xe5\x8c\x85\xe5\xb0\x9a\xe5\xad\xa6\xe5\xa0\x82'
print(l2.decode('utf8'))
结果 小嘛小二郎 背着书包上学堂
    """
    基于网络传输数据,数据都必须是二进制格式 
    """
------------------------------------------------------------------------------------
数据当初以什么编码编,就用什么编码解码即可
3、python解释器
  python2解释器默认的编码是ASCII码
    1、文件头:必须写在文件的最上方,告诉解释器使用指定的编码
    coding:utf8
    美化后的写法: _*_ coding:utf8 _*_
     2、字符前缀:在使用python2解释器的环境下定义字符串要在前面加个u
      name = u'你好哇'
  在python3解释器中默认的编码是utf8

标签:编码,tank,name,元组,123,dict,l1,print,字典
From: https://www.cnblogs.com/LiaJi/p/16745570.html

相关文章

  • 字符编码理论
    字符编码理论字符编码只针对文本数据回忆计算机内部存储数据的本质既然计算机内部只认识01为什么我们却可以敲出人类各式各样的字符肯定存在一个数字跟字符的对......
  • 数据类型的内置方法及字符编码理论
    数据类型的内置方法及字符编码理论一、内置方法之字典相关操作1.类型转换dict()字典的转换一般不使用关键字,而是自己动手转2.字典必须掌握的操作user_dict={......
  • 信息论与编码(二)| 自信息与信息熵
    自信息信息量如何考察或计算信源输出的消息(或者符号)的信息量?信源的信息实质:不确定性(信源输出的是消息,消息的内涵是信息。信源输出一个符号,我们认为发生一个事件)。数学上......
  • 信息论与编码(三)| 联合熵和条件熵
    联合熵和条件熵联合熵联合集XY上,对联合自信息的平均值称为联合熵:当有n个随机变量,有信息熵与热熵的关系信息熵的概念是借助于热熵的概念而产生的。1.信息......
  • Python 字典学习笔记
    字典(Dictionary)字典(Dictionary)是一个无序、可变和有索引的集合。在Python中,字典用花括号{}编写,拥有键和值。'''单级实例操作classroom={'Jack':12,'Amy':11,'J......
  • 【尚硅谷】Vue2.x组件化编码学习笔记--渐进式的JS框架
    Vue组件化编码​​一、使用Vue-cli创建项目​​​​1.1说明​​​​1.2创建Vue项目​​​​1.2.1如何修改端口以及自动运行​​​​1.3Vue-cli创建的项目的目录结构​​......
  • C# Unicode编码解码
    Unicode是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的......
  • 编码技巧 6
    编码技巧6不确定您是否会使用它,但以防万一您遇到想要借助脚本检查特定字段的依赖字段的情况,您可以使用以下脚本:vargtd=newGlideTableDescriptor('事件');vared=......
  • Python实现列表中嵌套字典按照给定key值去重
    需求:对下列数据按任意字段去重需要达到的效果:按照id进行去重,id重复则算重复。重复的取第一个数据。按照name和tel去重,name和tel都重复则算重复。重复的取第一个数据。......
  • one-hot编码
    优点:(1)解决了分类器不好处理离散数据的问题。a.欧式空间。在回归,分类,聚类等机器学习算法中,特征之间距离计算或相似度计算是非常重要的,而我们常用的距离或相似度的......