python-数据类型以及类型转换

容器类型

列表

可获取,可修改,有序
python 列表定义方法:
例: listvar = []
print (listvar ,type (listvar))
注:
python列表中的数据在进行取列表中的数据时,可以使用正向下标和逆向下标俩种方式取值这是python独有的方法。
例:

# 正向下标 0    1    2     3     4      5 
listvar = [100,3.14,"abc",6+90j,True,"12355"]
# 逆向下标  -6  -5   -4    -3     -2     -1

在获取列表中的元素时,如果要取上面列表中的True这个元素,我们可以使用listvar[4]或者listvar[-2]都可以取到该值。

python中修改列表元素可以直接对列表中的某个值重新赋值即可。

获取容器类型元素的个数的方法可以使用len函数。

元组

可获取,不可修改,有序
元组中的值不可修改,其他方面与列表基本类似。
逗号的区分是否是元组的标识符:
例:

tuplevar = (3.14)
print(type(tuplevar))
<class 'float'>


tuplevar = (3.14,)
print(type(tuplevar))
<class 'tuple'>

字符串

可获取,不可修改,有序
使用方法与元组类似,但是单个元素必须是字符形数据
例:

strvar = "今天心情很好"
res = strvar[1]
print(res)

#注,字符串的值与元组一样不可修改。

集合

无序,自动去重
集合中的数据无法获取,无法修改。
定义一个空集合的方法:

setvar = set()
print(type(setvar))

<class 'set'>

字典

字典是一种键值对存储数据的容易
定义方法为:
{键1:值1,键2:值2}

字典相关的操作:

# 定义一个空字典
dictvar = {}
print(dictvar , type(dictvar))

# 定义一个普通的字典
dictvar = {"top":"the shy","middle":"rookie","bottom":"jacklove","jungle":"kasa","support":"mata"}

# 获取字典的值
res = dictvar["top"]
print(res)

# 修改字典的值
dictvar["middle"] = "xboyww"
print(dictvar)

字典和集合的值只能是可哈希类型:
可哈希类型包含:
Number(int , bool , complex , float) , str , tuple
不可哈希类型包含:
list set dict

类型转换

number类型的转换

转换整型

使用int函数可以转换,在转换bool型数据时,True转换为1,False转换为0.
注意: 复数和带有字符的字符串类型是无法转换为整数的。

转换浮点数

使用float可以转换,在转换bool型数据时,True转换为1.0,False转换为0.0。
注意: 复数和带有字符的字符串类型是无法转换为整数的。

转换复数

使用complex可以转换,在转换bool型数据时,true转换为1+0j,false转换为0+0j。
带有字符的字符串无法转换为复数

转换为布尔型

使用bool可以转换,可以转为任何数据类型,只有一下十种情况会转换为false,其他都是true。
0
0.0
0j
False
‘’
[]
()
set()
{}
None

其中None代表关键字,表示空的,什么都没有,一般用于初始化操作。
例:

res = None
print(res , type(res))
a = None
b = None
print(a,b)

None None

在不同数据类型进行运算时,会自动进行数据类型转换以此来实现运算,默认精度从低到高转换,精度顺序为:
bool => int => float => complex
在转换时会存在精度损耗,因此数据可能会与预想的有所差错,但是不会有太大的影响。

容器类型的数据转换

str强制转换成字符串

可以一切数据转换,结果只是在原来的基础上加上引号。
repr表示原型化输出数据,可以加上repr来看到字符串数据俩边的引号。

强制转换成列表类型

如果是字符串,把里面的字符一个一个拿出来,作为列表的新元素
如果是字典 ,获取字典当中所有的键,形成新的列表
如果是其他容器数据,单纯的把两边的符号换成[]即可
不能转换非容器的数据。
使用list转换。

强制转换成元组类型

如果是字符串,把里面的字符一个一个拿出来,作为元组的新元素
如果是字典 ,获取字典当中所有的键,形成新的元组
如果是其他容器数据,单纯的把两边的符号换成()即可
使用tuple实现转换。

强制转换成集合类型

如果是字符串,把里面的字符一个一个拿出来,作为集合的新元素
如果是字典 ,获取字典当中所有的键,形成新的集合
如果是其他容器数据,单纯的把两边的符号换成{}即可# ### 二级容器 (list tuple set dict)
使用set实现转换。

多级容器

# 二级列表
lst = [1,2,3,4,5,6,7,8,[1,1,3]]
# 二级元组
tup = (1,2,3,(4,5,6))
# 二级集合
setvar = {"a","b","c",("d","f")}
# 二级字典
dic = {"a":1,"b":{"c":3,"d":4}}
# 四级容器
container = [1,2,3,4,("a","b","c","d",{"a1":1,"a2":[10,11,"bingo"]})]
# 如何获取bingo?
# ('a', 'b', 'c', 'd', {'a1': 1, 'a2': [10, 11, 'bingo']})
res1 = container[-1]
print(res1)
# {'a1': 1, 'a2': [10, 11, 'bingo']}
res2 = res1[-1]
print(res2)
# [10, 11, 'bingo']
res3 = res2["a2"]
print(res3)
# 'bingo'
res4 = res3[-1]
print(res4)
# 等长的二级容器
"""容器里面的元素都是容器,并且容器中的元素个数都是相同"""
lst = [(1,2,3),[4,5,6],{"a","b","c"},(11,12,13)]

强制转换为字典

需求: 等长的二级容器,并且里面元素个数是2个。
外面是列表元组集合时,里面的容器可以是列表或者元组。
推荐写法:
外面是列表,里面是列表或者元组。
外面是元组,里面是列表或者元组。
外面是集合,里面只能是元组。

变量的缓存机制

1.对于整型而言,-5~正无穷范围内的相同值 id一致
2.对于浮点数而言,非负数范围内的相同值 id一致
3.布尔值而言,值相同情况下,id一致
4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
5.字符串 | 空元组 相同的情况下,地址相同
6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值