15.python之不同类型的数据转换

本文详细介绍了Python中常见的数据类型转换,包括字符串与数字、字符串与列表、字符串与bytes之间的相互转换,以及列表、集合和元组的转换。通过实例展示了各种转换方法,如str、int、float函数,split、join方法,以及encode、decode方法。同时,还探讨了bytes类型的特殊性质及其函数应用。此外,文章还提到了目录操作和数据安全相关的概念。
摘要由CSDN通过智能技术生成

数据转换:将自身的数据类型变成新的数据类型,并拥有新类型的所有功能的过程即为数据转换

1.字符串与数字转换:

  • 字符串转换成数字,必须是数字组成的字符串才行
  • 数字转换成字符串,无要求
  • 整型、浮点型转换成字符串:str函数
  • 字符串转换成整型:int函数
  • 字符串转换成浮点型:float函数

例:

number1 = 123
number2 = 123.11
str1 = '88'
str2 = '66.10'

# 数字类型转换成字符串
number1_str = str(number1)
number2_str = str(number2)

# 字符串转换成数字类型
str1_int = int(str1)
str2_float = float(str1)
print('整型转化成字符串:{}'.format(type(number1_str)))
print('浮点型转化成字符串:{}'.format(type(number2_str)))
print('字符串转化成整型:{}'.format(type(str1_int)))
print('字符串转化成浮点型:{}'.format(type(str2_float)))

结果:
在这里插入图片描述

2.字符串与列表转换

字符串转换成列表:split函数

  • 将字符串以一定规则切割转成列表
  • string.split(sep=None, maxsplit=-1)
  • sep:切割的规则符号,不添加则默认空格,若字符串无空格则不分割生成列表
  • maxsplit:根据切割符号切割的此时,默认-1无限制
  • 返回一个列表

例:

a = '123'
b = '1 2 3'
c = '1,22,3'

# 没有空格的字符串,整个字符串作为一个元素转换成列表
print(a.split())

# 有空格,以空格分割转换成列表,有2个空格,分割成3个元素
print(b.split())

# 设置分割符号的逗号,且只分割1次,这里分割一次,变成2个元素
print(c.split(',', 1))

结果:
在这里插入图片描述

列表转换成字符串:join函数

  • 将列表以一定规则转换成字符串
  • ‘sep’.join(iterable)
  • sep:生成字符串的规则符号
  • iterable:非数字类型的列表或元组或集合
  • 返回一个字符串
  • 只有字符串类型的列表才可以使用join,不然会报错

例:

test = ['b', 'c', 'a']
print('列表:{}'.format(test))

# 使用join将列表转换成字符串,并将各元素用.隔开
# 
new_test1 = '.'.join(test)
print('使用join转换成字符串:{}'.format(new_test1))

# sorted可以对任何类型的数据进行排序,前面列表学的sort是列表的内置函数,只有类别类型的可以用
test2 = sorted(test)  # 使用sorted将
print('使用sorted对列表排序:{}'.format(test2))

结果:
在这里插入图片描述

可以使用sorted对字符串排序:会使字符串在排序的同时转换成列表,此时可以再使用join将列表转换成字符串

例:

test = 'bca'
print('字符串:{}'.format(test))

new_test = sorted(test)  # 使用sorted排序
print('字符串排序,但是会转换成列表:{}'.format(new_test))

str_test = ''.join(new_test)  # 将列表转换成字符串
print('将列表转换成字符串:{}'.format(str_test))

结果:
在这里插入图片描述

3.字符串与bytes的转换

  • bytes类型:是二进制的数据流,可以理解成一种特殊的字符串;字符串类型前面加上b表示bytes类型

例:

a = 'my name is mike'
b = b'my name is mike'

print('{}:数据类型:{}'.format(a, type(a)))
print('{}:数据类型:{}'.format(b, type(b)))

# bytes类型是一种特殊的字符串类型,可以使用字符串的所有内置函数
print('将bytes类型变量首字母变成大写:{}'.format(b.capitalize()))

# 要注意bytes类型变量使用函数,若函数中有参数,要注意里面的参数也要是bytes类型才可以
print('将bytes类型变量的元素进行替换:{}'.format(b.replace(b'mike', b'haha')))
print('将bytes类型变量进行切割:{}'.format(b[:7]))

结果:
在这里插入图片描述

可以使用dir函数查看变量有哪些函数:

例:

b = b'my name is mike'

print(dir(b))

结果:
在这里插入图片描述

字符串转换成bytes:使用函数encode

  • 用法:string.encode(encoding=‘utf-8’, errors-'strict)
  • encoding:转换的编码格式,如ascii、gbk、默认utf-8
  • errors:出错时的处理方法,默认strict,直接抛错误,也可以选择ignore忽略错误
  • 返回一个bytes类型的数据

bytes转换成字符串类型:使用函数decode

  • 用法:bytes.encode(encoding=‘utf-8’, errors-'strict)
  • encoding:转换的编码格式,如ascii、gbk、默认utf-8
  • errors:出错时的处理方法,默认strict,直接抛错误,也可以选择ignore忽略错误
  • 返回一个字符串类型的数据

例:

a = 'my name is 张三'
print('{}:数据类型:{}'.format(a, type(a)))

# 将字符串转换成bytes类型
bytes_a = a.encode('utf-8')
print('{}:数据类型:{}'.format(bytes_a, type(bytes_a)))

# 将bytes转换成字符串
str_a = bytes_a.decode('utf-8')
print('{}:数据类型:{}'.format(str_a, type(str_a)))

结果:
在这里插入图片描述

4.列表、集合和元组的转换

在这里插入图片描述
例:

test = ['a', 'b', 'c']
set_test = set(test)  # 列表转换成集合
tuple_test = tuple(test)  # 列表转换成元组
print('列表:{}'.format(test))
print('列表转换成集合:{}'.format(set_test))
print('列表转换成元组:{}'.format(tuple_test))


test1 = (1, 'a', '!')
set_test1 = set(test1)  # 元组转换成集合
list_test1 = list(test1)  # 元组转换成列表
print('元组:{}'.format(test1))
print('元组转换成集合:{}'.format(set_test1))
print('元组转换成列表:{}'.format(list_test1))


test2 = {'aa', 123, 'k'}
list_test2 = list(test2)  # 集合转换成列表
tuple_test2 = tuple(test2)  # 集合转换成元组
print('集合:{}'.format(test2))
print('集合转换成列表:{}'.format(list_test2))
print('集合转换成元组:{}'.format(tuple_test2))

结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值