python 容器类型_Python容器类型数据的转换

容器类型的强制转换

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

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

var = [1, 2, 3]

res = str(var)

# 结果:'[1, 2, 3]'

print(repr(res), type(res))

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

list强制将数据转换成列表

如果原数据类型是字符串:把字符串中的每个元素单独拿出来,作为列表中的新元素使用

如果原数据类型是字典:只保留字典中的键,忽略字典的值

如果原数据类型是其他容器数据:直接在原数据类型两边换上[]

var = "abc123"

res = list(var)

# 结果:['a', 'b', 'c', '1', '2', '3']

print(res, type(res))

var = {"a": 1, "b": 2, "c": 3}

res = list(var)

# 结果:['a', 'b', 'c']

print(res, type(res))

var = (123,456,"abc")

res = list(var)

# 结果:[123, 456, 'abc']

print(res, type(res))

tuple强制将数据转换成元组

如果原数据类型是字符串:把字符串中的每个元素单独拿出来,作为元组中的新元素使用

如果原数据类型是字典:只保留字典中的键,忽略字典的值

如果原数据类型是其他容器数据:直接在原数据类型两边换上()

var = "abc123"

res = tuple(var)

# 结果:('a', 'b', 'c', '1', '2', '3')

print(res, type(res))

var = {"a": 1, "b": 2, "c": 3}

res = tuple(var)

# 结果:('a', 'b', 'c')

print(res, type(res))

var = {123,456,"abc"}

res = tuple(var)

# 结果:(456, 123, 'abc')

print(res, type(res))

set强制将数据转换成集合

如果原数据类型是字符串:把字符串中的每个元素单独拿出来,作为集合中的新元素使用

如果原数据类型是字典:只保留字典中的键,忽略字典的值

如果原数据类型是其他容器数据:直接在原数据类型两边换上{}

var = "abc123"

res = set(var)

# 结果:{'3', '2', 'c', 'a', '1', 'b'}

print(res, type(res))

var = {"a": 1, "b": 2, "c": 3}

res = set(var)

# 结果:{'c', 'a', 'b'}

print(res, type(res))

var = [123,456,"abc"]

res = set(var)

# 结果:{456, 123, 'abc'}

print(res, type(res))

扩展

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

res = ()

# 结果:()

print(res, type(res))

dict强制将数据转换成字典

要求: 必须是等长的二级容器,并且里面的元素个数只能是2个

外层可以是列表,元组或集合,里层是列表或者元组的等长二级容器

外层是列表

# 外层是列表,里层是列表或者元组

lst = [["a", 1], ("b", 2)]

dic = dict(lst)

# 结果:{'a': 1, 'b': 2}

print(dic, type(dic))

外层是元组

# 外层是元组,里层是列表或者元组

tup = (["a", 1], ("b", 2))

dic = dict(tup)

# 结果:{'a': 1, 'b': 2}

print(dic, type(dic))

外层是集合

# 外层是集合,里层是元组

setvar = {("a", 1), ("b", 2)}

dic = dict(setvar)

print(dic, type(dic))

# 结果1:{'a': 1, 'b': 2}

# 结果2:{'b': 2, 'a': 1}

集合的特征:无序,自动去重

字典的键和集合的值有数据类型上的要求:

不可变的类型(允许的类型范围):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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值