首页 > 其他分享 >数据类型内置方法下 字典、元组、集合、字符编码理论

数据类型内置方法下 字典、元组、集合、字符编码理论

时间:2022-09-30 17:45:48浏览次数:42  
标签:内置 ------------------ 数据类型 元组 keys lpl print 字典

+数据类型内置方法下 字典、元组、集合、字符编码理论

目录

§一、字典的内置方法

1、字典的类型转换dict()

# 语句
dict()
字典的转换一般不使用关键字,而是自己手动转换

# 举例
a = [['jack', 123],['uzi', 123]]
res = dict(a)
print(res)

可以看出来字典的转换在格式上有很多限制,所以一般不用

2、字典相关操作

1.按key取值(不推荐使用)

# 语句
字典名['k值']

lpl = {
    'tes': 'jackeylove',
    'jdg': 369,
    'edg': ['viper', 'meiko', 'scout']
}
print(lpl['tes'])  # jackeylove 存在则正常输出
print(lpl['rng'])  # 不存在该键则正常报错

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

# 语句
字典+ .get('要取的values的keys')

1.正确取值
print(lpl.get('edg'))
------------------
['viper', 'meiko', 'scout']
2.要取的keys不存在  # 返回None
print(lpl.get('rng'))
------------------
None
3.进阶用法
字典+ .get('要取的values','当不存在对应的keys时返回这串字符')
print(lpl.get('edg','当不存在对应的keys时返回这串字符'))
print(lpl.get('rng','当不存在对应的keys时返回这串字符'))
------------------
['viper', 'meiko', 'scout']
当不存在对应的keys时返回这串字符

3.修改数据值

# 语句
字典['要改变values的keys'] = '要改变的values'

当要改变的键存在  # 会直接改变这个键的数据值

print(id(lpl))
lpl['tes'] = 'knight'
print(lpl)
print(id(lpl))
------------------
4367933568
{'tes': 'knight', 'jdg': 369, 'edg': ['viper', 'meiko', 'scout']}
4367933568

4.新增键值对

# 语句
字典['要增加的keys'] = '要增加的values'  # 会直接在字典末尾增添新的键值对


lpl['rng'] = 'knight'
print(lpl)
------------------
{'tes': 'jackeylove', 'jdg': 369, 'edg': ['viper', 'meiko', 'scout'], 'rng': 'knight'}

5.删除数据del 、pop

1.del
# 语句
del +字典['要删除的keys']

del lpl['tes']
print(lpl)
------------------
{'jdg': 369, 'edg': ['viper', 'meiko', 'scout']}

2.pop 弹出
字典.pop('要弹出的keys')

a = lpl.pop('tes')
print(lpl)
print(a)
------------------
{'jdg': 369, 'edg': ['viper', 'meiko', 'scout']}
jackeylove

3.popitem
popitem() 用来随机删除一个键值对

print(lpl1.popitem())
-----------------
('edg', ['viper', 'meiko', 'scout'])

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

len(要统计的字典)  # 输出的数字

print(len(lpl))  # 3

7.字典三剑客

  • 一次性获取字典所有的
字典.keys() 

print(lpl.keys())
------------------
dict_keys(['tes', 'jdg', 'edg'])
  • 一次性获取字典所有的
字典.values() 

print(lpl.values())
------------------
dict_values(['jackeylove', 369, ['viper', 'meiko', 'scout']])
  • 一次性获取字典的键值对数据
字典.items() 

print(lpl.keys())
------------------
dict_items([('tes', 'jackeylove'), ('jdg', 369), ('edg', ['viper', 'meiko', 'scout'])])

8.补充说明

  • fromkeys生成相同数据值不同键的字典
# 语句
dict.fromkeys(['要生成的列表的keys'], 要生成的数据值values)
# 这里生成的可以是不同的键,但他们内的值都是相同的,相当于把一个数据值赋值给不同的键

print(dict.fromkeys(['faker','chovy','ruler'],123))
res = dict.fromkeys(['faker','chovy','ruler'],[])
print(res)
------------------
{'faker': 123, 'chovy': 123, 'ruler': 123}
{'faker': [], 'chovy': [], 'ruler': []}
  • append 为数据值为空列表的时候添加数据值
'''当第二个公共值是可变类型的时候 一定要注意 通过任何一个键修改都会影响所有'''

lpl = {'tes':[],'edg':[], 'jdg':[]}
lpl['tes'].append('jason')
lpl['edg'].append(123)
lpl['jdg'].append('study')
print(lpl)
------------------
{'tes': ['jason'], 'edg': [123], 'jdg': ['study']}
  • detdefault 默认值 None
setdefault() 方法用来返回某个 key 对应的 value
	当指定的 key 不存在时,setdefault() 会先为这个不存在的 key 设置一个默认的 defaultvalue,然后再返回 defaultvalue。
	也就是说,setdefault() 方法总能返回指定 key 对应的 value:
  
	1.如果该 key 存在,那么直接返回该 key 对应的 value;
	2.如果该 key 不存在,那么先为该 key 设置默认的 defaultvalue,然后再返回该 key 对应的 defaultvalue。

a = {'数学': 95, '语文': 89, '英语': 90}
print(a)
#key不存在,指定默认值
a.setdefault('物理', 94)
print(a)
#key不存在,不指定默认值
a.setdefault('化学')
print(a)
#key存在,指定默认值
a.setdefault('数学', 100)
print(a)
------------------
{'数学': 95, '语文': 89, '英语': 90}
{'数学': 95, '语文': 89, '英语': 90, '物理': 94}
{'数学': 95, '语文': 89, '英语': 90, '物理': 94, '化学': None}
{'数学': 95, '语文': 89, '英语': 90, '物理': 94, '化学': None}

§二、元组的内置方法

1、类型转换

# 语句
tuple() 支持for循环的数据类型都可以转换为元组

2、元组必须掌握的方法

1.索引取值、切片间隔

1.索引取值
元组[索引值]
# 其中 索引值可以是正数也可以是负数 ,负数代表了方向从右往左
2.切片间隔
元组[起始索引:结束索引:步长step]

2.统计元组内数据值的个数len

tup = (11, 22, 11, 22, 33, 44, 55, 123, 123, 321)
print(len(tup))
------------------
10

3.统计元组内某个数据值出现的次数count

元组.count(数据值)

tup = (11, 22, 11, 22, 33, 44, 55, 123, 123, 321)
print(tup.count(11))
------------------
2

4.统计元组内制定数据值的索引值index

Index访问元组中的某个元素,得到的是这个元素的索引值

print(tup.index(22))
------------------
1

5.关于元组的注意要点

  • 元组内如果只要一个数据值那么逗号不能少
  • 元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
  • 元组内不能新增或者删除数据

§三、集合的内置方法

1、类型转换

set()
# 集合内数据必须是不可变类型(整型、浮点型、字符串、元组)
#	集合内数据也是无序的,没有索引的概念

集合常常应于 去重和关心运算

2、set集合做交集、并集、差集运算

a7c532af84aeafc4fe414369a39a7730

运算操作 运算符 含义 例子
交集 & 取两集合公共的元素 set1 & set2 {3}
并集 | 取两集合全部的元素 set1 | set2 {1,2,3,4,5}
差集 - 取一个集合中另一集合没有的元素 set1 - set2 {1,2} set2 - set1 {4,5}
对称差集 ^ 取集合 A 和 B 中不属于 A&B 的元素 set1 ^ set2 {1,2,4,5}
1. 取交集 intersection()
set3 = set1.intersection()
2. 判断子集 issuperset()
set1.issuperset(set2) 判断 set2 是否是 set1 的子集

# 判断set1是否是set2的父集 输出值为布尔值
 print(set1 > set2)
 print(set1 < set2)

§四、字符编码理论

1、理论了解及发展史

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、字符编码实操

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

标签:内置,------------------,数据类型,元组,keys,lpl,print,字典
From: https://www.cnblogs.com/DuoDuosg/p/16745659.html

相关文章

  • 9月30日内容总结——数据类型内置方法剩余部分(字典、元组、集合)、字符编码的概念及使
    目录一、字典的内置方法1、类型转换(把其他类型转换成自己的类型)2、取值3、修改数据值4、增加数据值5、删除数据值1.del方法2.pop方法6、统计字典中键值对的个数7、字典三......
  • 字典,元组,集合的内置方法
    今日内容字典的相关操作内置方法1.类型转换 关键字dict() 字典使用转换太麻烦了,所以一般不推荐使用,建议手动转2.字典必须掌握的操作#这是按k取值不推荐 u......
  • 基本数据类型内置方法(二)
    基本数据类型内置方法(二)字典相关操作类型转换dict()字典的转换一般不使用关键字,都是自己手动转字典必须要掌握的操作 user_dict={'username':'jason',......
  • 字典,元组,集合与字符编码
    字典,元组,集合内置方法字典内置法类型转换语法:dict()一般情况下不用dict转字典,主要是自己动手转字典。基本上不用print(dict(11))#整型报错print(dict(11.11)......
  • 数据类型的常用操作和内置方法-下
    数据类型的常用操作和内置方法下字典内置方法类型转换字典的类型转换要求苛刻,一般不会使用dict([['key1',1],['key2',2]])#只能转换多元素的类型,且每个元素中还......
  • 数据类型的内置方法及字符编码理论
    数据类型的内置方法及字符编码理论一、内置方法之字典相关操作1.类型转换dict()字典的转换一般不使用关键字,而是自己动手转2.字典必须掌握的操作user_dict={......
  • 数据类型之内置方法2
    目录字典相关操作元祖相关操作集合相关操作字符编码理论字符编码实操字典相关操作元祖相关操作集合相关操作字符编码理论字符编码实操......
  • 【C语言基础】C语言数据类型及数据对齐
    前言code#include<stdio.h>#include<stdlib.h>#defineSize5typedefstructTable{charlength;charsize;charss;intlen;}table;tabl......
  • 工业互联网平台的数据类型及特点是什么?
    工业互联网产业联盟(AII)对工业互联网是这样定义的,分为宏观层面和技术层面:•从宏观层面看,工业互联网通过工业经济全要素、全产业链、全价值链的全面连接,支撑制造业数字化、......
  • 数据类型扩展及面试题
    数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用注:String=''字符串''(英文或中文)弱类型语言变量的使用不需要严格符合规定......