Python中常用的数据类型包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple)、字典(dict)等。有时候我们需要将一种数据类型转换成另一种数据类型,可以使用Python中的类型转换函数。
- 整数转换函数int()
将其他数据类型转换成整数类型。如果是浮点数,则只保留整数部分。如果是字符串,则字符串必须是纯数字字符串才能转换成整数,否则会报错。
a = 5.8
b = "10"
c = "10.5"
print(int(a)) # 5
print(int(b)) # 10
print(int(c)) # 报错:ValueError: invalid literal for int() with base 10: '10.5'
- 浮点数转换函数float()
将其他数据类型转换成浮点数类型。如果是整数,则转换成对应的浮点数。如果是字符串,则字符串必须是数字字符串才能转换成浮点数,否则会报错。
a = 5
b = "10.5"
c = "hello"
print(float(a)) # 5.0
print(float(b)) # 10.5
print(float(c)) # 报错:ValueError: could not convert string to float: 'hello'
- 字符串转换函数str()
将其他数据类型转换成字符串类型。转换后的字符串与原始数据类型的表达式相同。
a = 5
b = 3.2
c = True
print(str(a)) # '5'
print(str(b)) # '3.2'
print(str(c)) # 'True'
- 布尔值转换函数bool()
将其他数据类型转换成布尔值类型。如果转换的数据类型是0、空字符串、空列表、空元组、空字典等,则转换成False,否则转换成True。
a = 0
b = ""
c = []
d = ()
print(bool(a)) # False
print(bool(b)) # False
print(bool(c)) # False
print(bool(d)) # False
e = 1
f = "hello"
g = [1, 2]
h = (1, 2)
i = {"name": "Tom"}
print(bool(e)) # True
print(bool(f)) # True
print(bool(g)) # True
print(bool(h)) # True
print(bool(i)) # True
需要注意的是,在将浮点数转换成整数时,会直接舍去小数部分而不是四舍五入;在将字符串转换成数字类型时,如果字符串中含有非数字字符,会导致转换失败。因此,在进行类型转换时,需要根据实际情况进行数据校验。
5、列表、元、字典组之间的转换
可以使用Python内置的list()、tuple()、dict()函数将列表、元组、字典之间进行相互转换。
将列表转换成元组:
a = [1, 2, 3]
b = tuple(a)
print(b) # (1, 2, 3)
将元组转换成列表:
a = (1, 2, 3)
b = list(a)
print(b) # [1, 2, 3]
将字典的键和值分别转换成列表:
a = {"name": "Tom", "age": 18}
keys = list(a.keys())
values = list(a.values())
print(keys) # ['name', 'age']
print(values) # ['Tom', 18]
将列表和值两两对应转换成字典:
keys = ['name', 'age']
values = ['Tom', 18]
a = dict(zip(keys, values))
print(a) # {'name': 'Tom', 'age': 18}
- 其他类型转换函数
在Python的内置模块中,还提供了一些其他类型的转换函数。
将二进制数转换成十进制数:
a = "0b1010"
b = int(a, 2)
print(b) # 10
将八进制数转换成十进制数:
a = "0o12"
b = int(a, 8)
print(b) # 10
将十六进制数转换成十进制数:
a = "0xA"
b = int(a, 16)
print(b) # 10
将字符编码转换成字符:
a = 65
b = chr(a)
print(b) # 'A'
将字符转换成字符编码:
a = 'A'
b = ord(a)
print(b) # 65
以上就是Python中常用的数据类型转换函数。在实际编程中,对于数据类型的转换需要谨慎操作,需要根据具体的需求选择合适的数据类型转换函数,以避免出现错误和意外的情况。
7、Pandas库中的to_numeric()函数,可以将字符串、浮点数等类型的数据转换成数值类型。
import pandas as pd
a = ["1", "2", "3"]
b = pd.to_numeric(a)
print(b) # [1, 2, 3]
8、NumPy库中的astype()函数,可以将数组中的数据转换成指定的数据类型。
import numpy as np
a = np.array([1, 2, 3])
b = a.astype(float)
print(b) # [1. 2. 3.]
9、Matplotlib库中的text()函数,可以将数值类型的数据转换成字符串类型,用于在图表中添加注释。
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.plot(x, y)
plt.text(1.5, 5, str((2, 5)), fontsize=12)
plt.show()
总之,第三方库中的数据类型转换函数通常都是针对特定的需求而设计的,可以帮助我们更加方便地进行数据处理和分析。