Python - 数据类型

  • Python3 中有六个标准的数据类型:

        Number(数字)、String(字符串)、List(列表)

        Dictionary(字典)、Tuple(元组)、Set(集合)

  • 数字(Number)

        Python3 支持 int、float、bool、complex(复数)

(1)整型(int)

转化为整形的函数:int()

info = '100'
i_info = int(info)

isinstance 和 type 的区别在于:

type()不会认为子类是一种父类类型。

isinstance()会认为子类是一种父类类型。

>>> class A:
...     pass
...  
>>> class B(A):
...     pass
...  
>>> isinstance(A(), A)
True
>>> type(A()) == A  
True
>>> isinstance(B(), A)
True
>>> type(B()) == A 
False

(2)浮点(float)

转化为浮点型的函数:float()

info = 88
f_info = float(info)

(3)布尔型

布尔是int的子类,可以和数字进行相加,True == 1,False==0是会返回True的,可以 使用is判断是否为布尔型

>>> issubclass(bool, int)  
True
>>> True==1
True
>>> False==0
True
>>> True+1
2
>>> False+1
1
>>> 1 is True
False
>>> 0 is False
False

(4)复数型

1) z=a+bi(a、b均为实数)的数称为复数。其中,a 称为实部,b 称为虚部,i 称为虚 数单位。

# 实部和虚部是浮点数,虚数只能用j/J表示,不能用其他
complex01 = 1.5 + 1.2j
complex02 = 2.0 + 2.2J
print(complex01,complex02,complex01+complex02)
print(complex01.conjugate())   # 返回该复数的共轭复数
print(complex01.real)  # 获取实部的值
print(complex01.imag)  # 获取虚部的值

2)complex()函数

comp = complex(real,imag)
#例子:
a = complex(1,2)
print('%s' %a )
print('%r' %a)


  • 字符串(string)

  转化为字符串型的函数:str()

info = 99
s_info = str(info)

  • 列表(list)

 列表是有序的,可以进行增删改查,可以使用+号将两个列表拼接成一个新的列表,元素之间用逗号隔开。

(1)创建列表

#方式1:
lst = []
#方式2:
lst = list()

(2)添加元素

# append()
# append将lst3列表添加到lst列表,lst3将会被整体当做一个元素添加进去
lst.append(lst3)  

# extend()
# extend将lst2列表添加到lst列表,lst2的元素会被拆开添加到lst列表
lst.extend(lst2)

# insert()
# 指定索引添加元素
lst.insert(0, "新加的元素")

(3)修改元素

lst[0]=10

(4)切片

#切片会产生一个新的列表,不会更改源对象id
lst[2:4]

(5)删除元素

# pop:删除指定索引的值
lst.pop(0)

# remove:删除值,重复的值会被删除
lst.remove(10)

# 删除列表
del(lst)

(7)清空

lst.clear()

(8)排序(sort & sorted)

lst.sort()   #当列表中的元素是不同类型时,无法正常排序
sorted(lst, reverse=True)  # reverse=True为降序

  • 字典(dict)

无序的key:values集合,key必须唯一,使用的哈希将值和唯一的键key进行绑定。

(1)创建

#方式1:
dic = {}
#方式2:
dic = dict()

(2)添加

# 修改指定键的值
dic['keys'] = "values"
# 使用两个列表合成一个字典
lst01 = ['a','b','c']
lst02 = [1,2,3]
dic = dict(zip(lst01,lst02))

(3)修改

dic['keys'] = "values"

(4)查询

# 使用索引键查看
print(dic['keys'])
# 使用get方法获取
print(dic03.get('keys'))
#两者的区别在于,使用索引键查不到时,程序会报异常,使用get查不到会返回none

(5)清空

dic.clear()

(6)获取所有key

dic_keys = dic.keys()
# 获取到的内容位<class 'dict_keys'>
# 可以使用list(dic_keys)转换为列表

(7)获取所有values

# 可以通过方法values获取值,然后转化为列表
dic = {'key1':'v1','key2':'v2','key3':'v3'}
print(dic,type(dic))
dic_value = dic.values()
print(dic_value)
lst = list(dic_value)
print(lst

(8)字典生成式

lst01 = ["a","b","c","d"]
lst02 = [10,20,30,40,90,30]     
# 创建个数以最少的为主,合成为字典
cr_dic = { i.upper():y for i,y in zip(lst01,lst02) }       
# upper()是将值转换为大写,zip是将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,
# 然后返回由这些元组组成的列表
print(cr_dic)
  • 元组(tuple)

元组是有序的,它的元素不能被进行修改,但可以使用+号进行拼接,也可以索引和切片

(1)创建元组

# 方式1:
t = tuple()
#方式2:
t = ()

(2)获取元素值

values0 = t[0]    #获取元组索引为0的值

(3)修改元组中列表的数据

# 元组的数据无法进行修改,但元组内的列表和字典是可以进行修改的
t = (1,2,3,['a','b','c'],{'key1':'V1','key2':'V2'})
print(type(t),id(t))
for i in t:
    if type(i) is list:
        i.append('dd')
        print(i)
    elif type(i) is dict:
        i['key1'] = 'Change'
        print(i)
    else:
        print(i)
print(t,id(t))

  • 集合(set)

集合可以看成是没有values的字典

(1)创建集合

s = set()

(2)添加元素

# add方法
s.add(90)     # add函数一次只能添加一个元素

# update方法:
s.update([10,200,300]) # update函数可以一次添加多个元素
s.update({999,998})

(3)删除

s.remove(998)     #当元素不存在时会报错,一次只能删除一个元素
s.discard(100)    #当元素不存在时不报错,一次只能删除一个元素
s.pop()       #随机删除一个元素,无法指定参数

(4)清空

s.clear()     #清空集合

(5)集合的数学操作

s7 = {100,200,300,400}
s8 = {50,60,100,200,}
#交集
print("交集:",s7 & s8)
print("交集:",s7.intersection(s8))    #交集函数写法
#并集
print("并集:",s7 | s8)
print("并集:",s7.union(s8))   #使用函数名写法
#差集
print("s7的差集:",s7 - s8)
print("s8的差集",s8 - s7)
print("s7的差集:",s7.difference(s8))   #使用函数的方法
print("s8的差集",s8.difference(s7))
#对称差集
print("对称差集:",s7 ^ s8)
print("对称差集:",s7.symmetric_difference(s8))

(6)集合生成式

# for循环执行获取的i值,返回给左边的变量,左边的变量按照表达式计算出结果
s = {i+i for i in range(10)}
  • 可变类型&不可变类型

不可变数据:Number(数字)、String(字符串)、Tuple(元组)

可变数据:List(列表)、Dictionary(字典)、Set(集合)

  • json操作

import json

x = {'k1':'v1','k2':'v2','k3':'v3'}
# 格式化,向右缩进两个空格
print(json.dumps(x,sort_keys=True,indent=2))   

#dump是dumps的变体,支持文件方式
with open('a.txt','w+',encoding='UTF-8') as f:
    # dump方法可以将内容写入文件
     json.dump(x,f,sort_keys=True,indent=2)    

# load方法可以读取文件的内容,前提时文件内容为json格式,否则报错
with open('a.txt','r',encoding='UTF-8') as f:
    y = json.load(f)    
    print(y)   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值