VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • Python容器类型数据的转换

str强制将数据转换成字符串

str可以转换所有的数据类型, 在当前的数据类型两边套上引号


var = [1, 2, 3] res = str(var) # 结果:'[1, 2, 3]' <class 'str'> print(repr(res), type(res))

repr():原型化输出字符串

list强制将数据转换成列表

  • 如果原数据类型是字符串:把字符串中的每个元素单独拿出来,作为列表中的新元素使用
  • 如果原数据类型是字典:只保留字典中的键,忽略字典的值
  • 如果原数据类型是其他容器数据:直接在原数据类型两边换上[]

var = "abc123" res = list(var) # 结果:['a', 'b', 'c', '1', '2', '3'] <class 'list'> print(res, type(res)) var = {"a": 1, "b": 2, "c": 3} res = list(var) # 结果:['a', 'b', 'c'] <class 'list'> print(res, type(res)) var = (123,456,"abc") res = list(var) # 结果:[123, 456, 'abc'] <class 'list'> print(res, type(res))

tuple强制将数据转换成元组

  • 如果原数据类型是字符串:把字符串中的每个元素单独拿出来,作为元组中的新元素使用
  • 如果原数据类型是字典:只保留字典中的键,忽略字典的值
  • 如果原数据类型是其他容器数据:直接在原数据类型两边换上()

var = "abc123" res = tuple(var) # 结果:('a', 'b', 'c', '1', '2', '3') <class 'tuple'> print(res, type(res)) var = {"a": 1, "b": 2, "c": 3} res = tuple(var) # 结果:('a', 'b', 'c') <class 'tuple'> print(res, type(res)) var = {123,456,"abc"} res = tuple(var) # 结果:(456, 123, 'abc') <class 'tuple'> print(res, type(res))

set强制将数据转换成集合

  • 如果原数据类型是字符串:把字符串中的每个元素单独拿出来,作为集合中的新元素使用
  • 如果原数据类型是字典:只保留字典中的键,忽略字典的值
  • 如果原数据类型是其他容器数据:直接在原数据类型两边换上{}

var = "abc123" res = set(var) # 结果:{'3', '2', 'c', 'a', '1', 'b'} <class 'set'> print(res, type(res)) var = {"a": 1, "b": 2, "c": 3} res = set(var) # 结果:{'c', 'a', 'b'} <class 'set'> print(res, type(res)) var = [123,456,"abc"] res = set(var) # 结果:{456, 123, 'abc'} <class 'set'> print(res, type(res))

扩展

强转空数据时,默认转换成当前数据类型的一个值


res = () # 结果:() <class 'tuple'> print(res, type(res))

dict强制将数据转换成字典

  • 要求: 必须是等长的二级容器,并且里面的元素个数只能是2个
  • 外层可以是列表,元组或集合,里层是列表或者元组的等长二级容器

外层是列表


# 外层是列表,里层是列表或者元组 lst = [["a", 1], ("b", 2)] dic = dict(lst) # 结果:{'a': 1, 'b': 2} <class 'dict'> print(dic, type(dic))

外层是元组


# 外层是元组,里层是列表或者元组 tup = (["a", 1], ("b", 2)) dic = dict(tup) # 结果:{'a': 1, 'b': 2} <class 'dict'> print(dic, type(dic))

外层是集合


# 外层是集合,里层是元组 setvar = {("a", 1), ("b", 2)} dic = dict(setvar) print(dic, type(dic)) # 结果1:{'a': 1, 'b': 2} <class 'dict'> # 结果2:{'b': 2, 'a': 1} <class 'dict'>

集合的特征:无序,自动去重 字典的键和集合的值有数据类型上的要求:   不可变的类型(允许的类型范围):Number(int、float、complex、bool)、str、tuple   可变的类型(不允许的类型):list、set、dict

例外1


""" 外层是列表或元组,里层放集合 可以实现,但不推荐使用, 因为集合无序,达不到想要的目的 """ lst = [["a", 100], {"b", "250"}] dic = dict(lst) print(dic) # 结果1:{'a': 1, 'b': '250'} # 结果2:{'a': 1, '250': 'b'}

例外2


""" 外层是列表,元组或集合,里层放字符串 字符串长度只能是2位,有极大的局限性,不推荐使用 """ lst = ["a1","b2"] # lst = ["a11","b22"] #Error dic = dict(lst) # 结果:{'a': '1', 'b': '2'} print(dic)

扩展:等长二级容器

外面是容器,里面的元素也是容器,且元素个数相同


lst = [(1, 2, 3), [4, 5, 6], {7, 8, 9}]

类型判断

使用方法一

isinstance(数据,类型)

  • 如果该数据是这个类型,返回True
  • 反之,返回False
  • 类型: int、float、complex、bool、str、list、tuple、set、dict

n = 123 res = isinstance(n, int) print(res) # True n = "123" res = isinstance(n, int) print(res) # False

使用方法二

isinstance( 数据, (类型1,类型2,类型3...) )

  • 如果该数据在所对应的类型元组当中,返回True
  • 反之,返回False
  • 类型: int、float、complex、bool、str、list、tuple、set、dict

n = 123 res = isinstance(n, (float, complex, int)) print(res) # True n = "123" res = isinstance(n, (float, complex, int)) print(res) # False

数据类型判断:一真则真,全假则假

__EOF__

 
本文作者kangyz 本文链接:https://www.cnblogs.com/kangyz/p/13859568.html


相关教程