Skip to content

类型转换

  • 不同类型数据相互转换

转成数字

  • 字符串必须为数字字符串才能转数字,否则报错
python
str1 = '123'
int1 = int(str1)
print(int1,type(int1))  # 123 <class 'int'>

str2 = '123.456'
float1 = float(str2)
print(float1,type(float1))  # 123.456 <class 'float'>

转成字符串

python
int1 = 456
str1 = str(int1)
print(str1,type(str1))  # 456 <class 'str'>

float1 = 123.456
str2 = str(float1)
print(str2,type(str2))  # 123.456 <class 'str'>

dict1 = {'name': 'John', 'age': 30}
str3 = str(dict1)
print(str3,type(str3))  # {'name': 'John', 'age': 30} <class 'str'>

list1 = [1, 2, 3]
str4 = str(list1)
print(str4,type(str4))  # [1, 2, 3] <class 'str'>

tuple1 = (1, 2, 3)
str5 = str(tuple1)
print(str5,type(str5))  # (1, 2, 3) <class 'str'>

转成列表

  • 支持转换列表的类型 str,tuple,set
python
tuple1 = (1, 2, 3)
list1 = list(tuple1)
print(list1)  # [1, 2, 3]

string1 = "hello"
list2 = list(string1)
print(list2)    # ['h', 'e', 'l', 'l', 'o']

set1 = {1, 2, 3}
list3 = list(set1)
print(list3)    # [1, 2, 3]

转成字典

  • 支持转换字典的类型 str
python
import json
str5 = '{"key1": "value1", "key2": "value2"}'
dict1 = json.loads(str5)
print(dict1)  # {'key1': 'value1', 'key2': 'value2'}

eval 转换

  • eval() 可以将字符串转换为对象
  • eval() 函数执行的代码具有潜在的安全风险。如果使用不受信任的字符串作为表达式,则可能导致代码注入漏洞,因此,应谨慎使用 eval() 函数,并确保仅执行可信任的字符串表达式。
  • 不建议使用
python
str1 = '[1, 2, 3]'
list1 = eval(str1)
print(list1,type(list1))  # [1, 2, 3] <class 'list'>

str2 = '{"name": "John", "age": 30}'
dict1 = eval(str2)
print(dict1,type(dict1))  # {'name': 'John', 'age': 30} <class 'dict'>