blog/docs/code/python/data-conversion.md

5.2 KiB
Raw Permalink Blame History

title date tags categories author
数据类型的转换 2020-08-22 22:09:54
Python
Python
Anges黎梦

数据类型的转换

**类型:**数字、字符串、列表、元组、字典、集合、布尔

数字

使用 intfloat 可以转换数据类型

  • int:转换为 int 类型

示例代码

num_1 = 1
print(num_1, type(num_1))   

执行结果

 1 <class 'int'>
  • float:转换为 float 类型

示例代码

print(float(num_1), type(float(num_1)))

print(int("6"), type(int("6")))

执行结果

1.0 <class 'float'>

6 <class 'int'>

使用int函数转换类型时转换的内容一定是数字。

示例代码

print(float("6"), type(float("6")))    

print(float("a"), type(float("a"))) 

执行结果

6.0 <class 'float'>

ValueError: could not convert string to float: 'a'

字符串

使用 str 可以转换数据为字符串

示例代码

# 转换数字为字符串
print(str(1), type(str(1))) 
# 转换列表为字符串
print(str([1,4,"a",0,"fj"]), type(str([1,4,"a",0,"fj"])))  
# 转换字典为字符串 
print(str({"a":1}), type(str({"a":1})))    

执行结果

1 <class 'str'>
[1, 4, 'a', 0, 'fj'] <class 'str'>
 {'a': 1} <class 'str'>

列表

使用 list 可以转换数据为列表

示例代码

# 字符串转换列表
print(list("abc"), type(list("abc")))
# 字典转换列表转换时只转换key而不会转换value返回的是key列表
print(list({"a":1}), type(list({"a":1})))   

执行结果

['a', 'b', 'c'] <class 'list'>
['a'] <class 'list'>

元组

使用 tuple 可以转换数据为元组

示例代码

# 字符串转元组
print(tuple("abc"), type(tuple("abc"))) 
# 字典转元组与字典转列表相同只转换key
print(tuple({"a":1}), type(tuple({"a":1})))    

执行结果

('a', 'b', 'c') <class 'tuple'>
('a',) <class 'tuple'>

列表和元组的转换方法list/tuple 在转换字符串时, 均为转换字符串中的每一个元素, 作为列表/元组中的每个元素

字典

使用 dict 可以转换数据为字典

示例代码

print(dict([("a", 1)]), type(dict([("a", 1)]))) 

执行结果

{'a': 1} <class 'dict'>

dict函数传参时一定要按照一定的规范来传参数否则执行会抛出异常

示例代码

print(dict('{"a":1}'), type(dict('{"a":1}')))   

执行结果

ValueError: dictionary update sequence element #0 has length 1; 2 is required

集合

使用 set 可以转换数据为集合

示例代码

# 列表转集合
print(set([1,2,4,7]), type(set([1,2,4,7])))   
# 字符串转集合
print(set("1111"), type(set("1111")))   

执行结果

{1, 2, 4, 7} <class 'set'>
{'1'} <class 'set'>

布尔类型

使用 bool 可以转换数据为布尔值

  • 非0为True
  • 非空为True
  • None为False

示例代码

print(type(bool(10)), bool(10)) # 非0为True
print(type(bool(0)), bool(0))
print(type(bool(-3)), bool(-3))
print(type(bool("a")), bool("a")) # 非空为True
print(type(bool("")), bool(""))
print(type(bool(None)), bool(None)) # None为False
print(type(bool(True)), bool(True))
print(type(bool(False)), bool(False))
print(type(bool({})), bool({}))
print(type(bool({"a":1})), bool({"a":1}))
print(type(bool([])), bool([]))
print(type(bool([1])), bool([1]))
print(type(bool(())), bool(()))
print(type(bool((1))), bool((1)))
print(type(bool({1,3})), bool({1,3}))

执行结果

<class 'bool'> True
<class 'bool'> False
<class 'bool'> True
<class 'bool'> True
<class 'bool'> False
<class 'bool'> False
<class 'bool'> True
<class 'bool'> False
<class 'bool'> False
<class 'bool'> True
<class 'bool'> False
<class 'bool'> True
<class 'bool'> False
<class 'bool'> True
<class 'bool'> True

eval()

使用 eval 用来计算在字符串中的有效Python表达式,并返回一个对象

示例代码

print(type(eval('{"a":1}')), eval('{"a":1}'))   

执行结果

<class 'dict'> {'a': 1}

示例代码

print(type(eval('[2,4,"b","ooo"]')), eval('[2,4,"b","ooo"]'))   

执行结果

<class 'list'> [2, 4, 'b', 'ooo']

示例代码

print(list('[2,4,"b","ooo"]'))  

执行结果

['[', '2', ',', '4', ',', '"', 'b', '"', ',', '"', 'o', 'o', 'o', '"', ']']

示例代码

print(type(eval('[2,4,"b","ooo", True]')), eval('[2,4,"b","ooo", True]')) 

执行结果

<class 'list'> [2, 4, 'b', 'ooo', True]

示例代码

print(type(eval('[2,4,"b","ooo", None]')), eval('[2,4,"b","ooo", None]')) 

执行结果

<class 'list'> [2, 4, 'b', 'ooo', None]

join()

使用 join 元组转换字符串

正确代码:

a = ",".join(["a","b","c","d"])  # a,b,c,d

异常代码:

a = "".join([1,2,3,4,5,6,7,8,9,10]) 

执行结果

TypeError: sequence item 0: expected str instance, int found