python 学习汇总48:数据类型相互转换 (全)(基础学习- 推荐 tcy)

2024-03-20 09:58

本文主要是介绍python 学习汇总48:数据类型相互转换 (全)(基础学习- 推荐 tcy),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 类型转换 2018/9/12
 汇总比较全面,内容有点多,请耐心。
目录:1.基本转换函数2.实例2.1.str转number,bytes# Unicode str转int# str转int:2,8,10,16进制str要和后面的base对应# str转bytes# str转bytes整数数组# str求值#str转ascii2.2.bytes转number,str,bytes# bytes转int:(str进制和base进制相同)# bytes转str# 16bytes转16bytes# bytes转16进制str数组:2.3.数字转换# int转Unicode str:# int转str:2,8,10,16进制3.python基本数据类型<>types# int>bytes# bytes>int4.数据类型转换boolintfloatcomplex5.序列转换5.1.相关函数5.2.实例1) .str转其他类型2) .其他类型转str3).tuple转换4).list转换5).dict转换6).set转换7).array转换6.空类型None和NaN的区别  参见本人博文
1.转换函数str(x) 将对象x转换为字符串
str(bytes_or_buffer[, encoding[, errors]])
repr(x) 将对象x转换为表达式字符串
eval(str) 计算字符串中表达式的值
ascii() 返回一个可打印对象字符串;非ASCII码输出\x,\u
format(x,[,format_spec])将对象x转格式化字符串bytes(ints=) #整形数字0-255
bytes(length: int)
bytes(str,encoding=,errors)
bytearray([source, encoding , errors])tuple(s) 将s(可迭代)转元组
list(s) 将s(可迭代)转列表
dict(k,v) 将(k,v)转dict
set(s) 将s(可迭代)转集合
array('i',s) 将s(可迭代)转数组
chr(int x) 将一个整数转换为一个字符
ord(str x) 将一个字符转换为它的整数值
bool([x]) 字符转换为Boolean类型
*****************************************************************
bin(s) 整数转2进制字符串
oct(x) 整数转8进制字符串
hex(x) 整数转16进制字符串int(x[, base]) 将x转换为一个整数 x 数值或字符串
long(x[, base]) 将x转换为一个长整数
float(x) 将x转换到一个浮点数
complex(real[, imag]) 创建一个复数 
str.encode(encoding='utf-8') 字符串编码生成bytes
bytes.decode('utf-8') 字节解码生成str 
bytes().fromhex('010210') 16进制字符串转字节 b'\x01\x02\x10'
binascii.b2a_hex(b'\x01\x02\x10') 字节转16进制字str b'010210'
struct.pack(fmt,buffer ) 把任意数据类型变成bytes
struct.unpack(fmt, string) 将bytes转换成python数据类型
2.实例 :  
2.1.str转number,bytes# Unicode str转int
ord('a') #97 【chr(97) #'a'】
ord('特') # 29305 【chr(29305) #'特'】# str转int:2,8,10,16进制str要和后面的base对应
int('-0b10000',2) #-16 【bin(-16) #'-0b10000'】
int('0o20',8) #16 【oct(16) #'0o20'】
int('16',10) #16 【str(16) #'16'】
int('0x10',16) #16 【hex(16) #'0x10'】# str转bytes
b1='0b10000'.encode() #b'0b10000'【b1.decode() #'0b10000'】
b2='0o20'.encode() #b'0o20' 【b1.decode() #'0o20'】
b3='16'.encode() #b'16' 【b1.decode() #'16】
b4='0x10'.encode() #b'0x10' 【b1.decode() #'0x10'】'12abc'.encode('ascii') == > b'12abc'# str转bytes--整数数组
b1=bytes([ord('T'),ord('e'),ord('s'),ord('t')])#b'Test'
b1=bytes([84, 101, 115, 116]) #b'Test'
b1=bytes([0x54,0x65,0x73,0x74]) #b'Test'b1=bytes().fromhex('54657374') #16进制字符 #b'Test'
b1=bytes(map(ord, '\x54\x65\x73\x74')) #b'Test' 【b1.decode() #'Test'】# str求值
eval('3,4,5') #将字符串求值(3, 4, 5)#str转ascii
ascii('test-1 中国 \\n') #"'test-1 \\u4e2d\\u56fd \\\\n'"
ascii('b\31') # 'b\x19'
ascii('0x\1000') #'0x@0'------------------------------------------------------------------------------2.2.bytes转number,str,bytes# bytes转int:(str进制和base进制相同)
int(b'0b10000',2) #16【不能转换,要用struct.pack,unpack】
int(b'0o20',8) #16
int(b'16',10) #16
int(b'0x10',16) #16# bytes转str
b1.decode() # '中国' 【b1='中国'.encode() # b'\xe4\xb8\xad\xe5\x9b\xbd'】
b1.decode() # 'Test'【b1=bytes([0x54,0x65,0x73,0x74]).decode('ascii')# 'Test'】str(bytes(b'Test'))[2:-1] # 'Test'# 16bytes转16bytes
b1 = binascii.b2a_hex(b'\x54\x65\x73\x74');#b'54657374'
# b2 = binascii.b2a_hex(b'54657374') #b'3534363537333734'c1 = binascii.a2b_hex(b1) #b'Test'
# c2 = binascii.a2b_hex(b2) #b'54657374'# bytes转16进制str数组:
[hex(x) for x in bytes(b'\x54\x65\x73\x74\x2d\x31')]
# ['0x54', '0x65', '0x73', '0x74', '0x2d', '0x31']------------------------------------------------------------------------------
2.3.数字转换# int转Unicode str:
chr(97) # 'a' 【ord('a') #97】
chr(29305) # '特' 【ord('特') #29305】# int转str:2,8,10,16进制
b1=bin(-16) # '-0b10000'【int(b1,2) #-16】
b2=oct(0b10000) # '0o20' 【int(b2,8) #16】
b3=str(0x10) # '16' 【int(b3,10) #16】
b4=hex(0o20) # '0x10' 【int(b4,16) #16】# 整数转字节
# 不能转换,必须通过str做桥梁:int-->str-->bytes
3.python基本数据类型<-->types:
# int-->bytes
struct.pack('<HH', 1, 2) == > b'\x01\x00\x02\x00' #转为两个字节
struct.pack('<LL', 1, 2) == > b'\x01\x00\x00\x00\x02\x00\x00\x00' #转为四个字节# bytes-->int
struct.unpack('<hh', bytes(b'\x01\x00\x00\x00')) == > (1, 0) #转short int
struct.unpack('<L', bytes(b'\x01\x00\x00\x00')) == > (1,) #转long int
4.数据类型转换:
bool([x]) 字符转换为Boolean类型
# 说明:
# 以下值被认为是False:
# 0,0.0;空字符串'',"";None;空集合(),[],{};
# 在if、while等条件判断语句:if bool(a)等同于if a != ''# 实例:
bool() #False
bool('') # False
bool(' ') # True
bool({}) # False
bool(()) # False
bool([]) # False
bool(None) # False
bool(0) # False
bool(0.0) # False
bool('False') # Truea1=int(3.14) #3
float(3) #3.0
float('3.14') #3.14
a=1 + 2j #(1 + 2j)
complex(a) #(1 + 2j)
5.序列转换str,tuple,list,dict,set,array转换:
5.1.函数
# str tuple,list ,dict,set,frozenset,array都是可迭代str(object=b'', encoding='utf-8', errors='strict')
tuple([iterable]) #序列和可迭代对象转list,元素排序不变
list([iterable]) #序列和可迭代对象转list,元素排序不变dict(mapping)
dict(iterable)
dict(**kwargs)set([ iterable ] )
frozenset([ iterable ] ) 
5.2.实例: 
import array as array
str0 = "abc123"1) .str转其他类型a1=tuple(str0) # ('a', 'b', 'c', '1', '2', '3')
a1=list(str0) # ['a', 'b', 'c', '1', '2', '3']
d1 = dict(zip(str0, str0)) #{'a':'1','b':'2','c':'3'}k1 = str0[0:3];v1 = str0[3:]
d1 = dict(map(lambda k1, v1: (k1, v1), k1, v1))# {'a': '1', 'b': '2', 'c': '3'}d2 = dict.fromkeys(str0, 0) #{'a':0,'b':0,'c':0}
s1=set(str0) #{'2', '1', 'b', '3', 'c', 'a'}
a1=array.array('u',str0) #array('u', 'abc123')
------------------------------------------------------------------------------------
2) .其他类型转str(1)标准str类型 如"abc123"
str1="".join(t1) #t1全是char
str1=''.join([str(i) for i in t1])(2)其他类外加分号 如"(1,2,3,'test')"
t=(1,2,3,'test')
b=eval(str(tuple(t))) #tuple可为其他5种类型------------------------------------------------------------------------------------3).tuple转换t=(1,2,3.1)a=list(t) # [1, 2, 3.1]
a=dict(zip(t,t)) # {1: 1, 2: 2, 3.1: 3.1}
a=set(t) # {1, 2, 3.1}
a=array('f',t) # array('f', [1.0, 2.0, 3.0999999046325684])-------------------------------------------------------------------------------------
4).list转换
lst=(1,2,3.1)a=tuple(lst) # (1, 2, 3.1)
a=dict(zip(lst,lst)) # {1: 1, 2: 2, 3.1: 3.1}
a=set(lst) # {1, 2, 3.1}
a=array.array('f',lst) # array('f', [1.0, 2.0, 3.0999999046325684])
--------------------------------------------------------------------------------------
5).dict转换
d={'k1':11,'k2':22,'k3':33}a1=tuple(d) # ('k1', 'k2', 'k3')
a2=tuple(d.items()) # (('k1', 11), ('k2', 22), ('k3', 33))
a3=tuple(d.keys()) # ('k1', 'k2', 'k3')
a4=tuple(d.values()) # (11, 22, 33)a1=list(d) # ['k1', 'k2', 'k3']
a2=list(d.items()) # [('k1', 11), ('k2', 22), ('k3', 33)]
a3=list(d.keys()) # ['k1', 'k2', 'k3']
a4=list(d.values()) # [11, 22, 33]a1=set(d) # {'k1', 'k2', 'k3'}
a2=set(d.items()) # {('k3', 33), ('k1', 11), ('k2', 22)}
a3=set(d.keys()) # {'k1', 'k2', 'k3'}
a4=set(d.values()) # {33, 11, 22}a1=array('u',str(d)) # array('u', "{'k1': 11, 'k2': 22, 'k3': 33}")
a2=array('u',str(d.items())) # array('u', "dict_items([('k1', 11), ('k2', 22), ('k3', 33)])")
a3=array('u',str(d.keys())) # array('u', "dict_keys(['k1', 'k2', 'k3'])")
a4=array('f',d.values()) # array('f', [11.0, 22.0, 33.0])
--------------------------------------------------------------------------------------
6).set转换
s={1,2,3}a=tuple(s) # (1, 2, 3)
a=list(a) # [1, 2, 3]
a=dict(zip(s,s)) # {1: 1, 2: 2, 3: 3}
--------------------------------------------------------------------------------------
7).array转换
s=array.array('i',[1,2,3])a=tuple(s) # (1, 2, 3)
a=list(s) # [1, 2, 3]
a=dict(zip(s,s)) # {1: 1, 2: 2, 3: 3}
a=set(s) # {1, 2, 3}

 
 

这篇关于python 学习汇总48:数据类型相互转换 (全)(基础学习- 推荐 tcy)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829095

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss