Python數據類型最全知識總結

一、什麼是數據類型

其實可以明白數據類型指的就是變量值的不同類型,姓名可能是一種數據類型、年齡可能是一種數據類型、愛好可能又是另一種數據類型

二、字符串類型

字符串類型所表示的數據是常量,它是一種不可變數據類型

如何表示

str = 'zhangsan'
str = "zhangsan"
str = '''zhangsan''' # 可以實現換行
str = """zhangsan""" # 可以實現換行
str = r'zhangsan\n'  # r可以取消轉移字符的功能

相關方法

在這裡插入圖片描述

舉例:

find('str')      # 找不到為-1
index('str')     # 找不到報錯
isalnum('str')   # 由字母或數字組成
isspace('str')   # 由空格組成
split('str')     # 分割之後是列表
rsplit('str',2)  # 當分割次數有限制時與split有區別
partition('str') # 分割之後是三元組
capitalize()     # 字符串首字母大寫
title()          # 每個單詞首字母大寫
ljust()          # 左對齊加空格

取值與切片操作

str = '123456789‘

# 下標取值
str[0] # 1
str[-1] # 9

# 切片語法 m[start, end, step]
str[1:3]    # 23
str[3:1]    # 空
str[0:]     # 123456789
str[:3]     # 123
str[::]     # 123456789
str[::-1]   # 987654321

str[0:4:1]  # 1234
str[0:4:2]  # 13
str[0:4:0]  # 報錯
str[0:4:-1] # 空
str[4:0:-1] # 5432

str[-3:-1]    # 78
str[-1:-3]    # 空
str[-3:-1:-1] # 空
str[-3:-1:1]  # 78
str[-1:-3:-1] # 98
str[-1:-3:1]  # 空

編碼與解碼操作

chr(65)                # 編碼轉為字符
ord('我')              # 字符轉為編碼
'str'.encode('utf-8')  # 將字符串轉編碼
'str'.decode('utf-8')  # 將字符串轉解碼

格式化輸出操作

普通格式化

%s(字符串)、 %d(整形)、 %f(浮點型)、 %%(%)、 %x(十六進制)、 %X(十六進制)

name = 'zhangsan'
age = 18

print('姓名:', name, ',年齡:', age, sep='')
print('姓名:%s,年齡:%d' %(name,age))
————————————————
版權聲明:本文為CSDN博主「ProChick」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_45747519/article/details/117379242

format格式化

# 默認
print('姓名{},年齡{}'.format('張三',18))
# 下標賦值
print('姓名{1},年齡{0}'.format(18,'張三'))
# 變量名賦值
print('姓名{name},年齡{age}'.format(name='zhangsan',age=18))
# 列表賦值
list = ['zhangsan',18]
print('姓名{},年齡{}'.format(*list))
# 字典賦值
dict = {"name":'zhangsan',"age":18}
print('姓名{name},年齡{age}'.format(**dict))

三、列表類型

列表類型所代表的數據元素有序且可以重復、可以修改

如何表示

mylist = ['張三',18]
mylist = list( ('zhangsan',18) ) # 將可迭代對象轉化為列表

相關方法

添加元素

list = [1,2,3]
# 追加
list.append(4)     # [1,2,3,4]
# 插入
list.insert(0,0)   # [0,1,2,3,4]

修改元素

list = [1,2,3]
# 修改指定位置元素
list[0] = 0    # [0,2,3]
list[2] = 0    # [0,2,0]

刪除元素

list = [1,2,3,4,5,6]
# 刪除最後一個
list.pop()         # [1,2,3,4,5]
# 刪除指定位置
list.pop(0)        # [2,3,4,5]
# 刪除指定元素
list.remove(2)     # [3,4,5]
# 清空
list.clear()       # []

查詢元素

list = [1, 2, 3, 2, 1]
# 查找元素位置
list.index(1)    # 0
# 查找元素個數
list.count(1)    # 2

合並列表

list1 = [1,2,3]
list2 = [4,5,6]
# 合並
list1.extend(list2) # [1,2,3,4,5,6]
print(list1+list2)  # [1,2,3,4,5,6]

排序

list = [2, 3, 1]
# 正序
list.sort()                                 # [1,2,3]
# 產生新對象並正序
new_list = sorted(list)                     # [1,2,3]
# 倒序
list.sort(reverse=True)                     # [3,2,1]
# 倒序
list.reverse()                              # [3,2,1]


# 自定義排序規則(一般用於字典類型的比較)
list = [
    {'name':'zhangsan',age:18},
    {'name':'lisi',age:20},
    {'name':'wangwu',age:19}
]

list.sort(key = lambda item : item['age'])

拷貝

list = [1, 2, 3]

# 是淺拷貝
new_list = list.copy() # [1, 2, 3]

嵌套

# 相當於二維數組
list = [[1,2],[3,4],[5,6]]

推導式

list = [i for i in range(1,3)] # [1,2]
list = [(i,j) for i in range(1,3) for j in range(1)] # [(1,0),(2,0)]

四、元組類型

元組類型所表示的數據元素有序且可以重復,但不可以修改

如何表示

# 表示多個元素
tuple = (1,2,'3') 
# 表示1個元素
tuple = (True,)

相關方法

查詢元素

tuple = (1,True,'3',True)

tuple.index(0)    # 1
tuple.count(True) # 2

合並

tuple1 = (1,2)
tuple2 = (True,False)

print(tuple1+tuple2) # (1,2,True,False)

五、字典類型

字典類型所表示的數據元素無序,Key不可以重復(隻能是不可變數據類型),Value可以修改(可以為任意數據類型)

如何表示

student = {"name":'zhangsan',"age":20} 

相關方法

查詢元素

student = {"name":'zhangsan',"age":20} 

print(student["age"])          # 20
print(student["birth"])        # 報錯

print(student.get("age"))      # 20
print(student.get("birth"))    # None
print(student.get("birth",'2000-10-10'))    # 2000-10-10d

# 獲取所有Key
print(student.keys())          # ['name','age']
# 獲取所有Value
print(student.values())        # ['zhangsan',20]
# 獲取所有Key-Value
print(student.items())         # [('name':'zhangsan'),('age':20)]

添加、修改元素

student = {"name":'zhangsan',"age":20} 

student["name"] = 'lisi'
print(student) # student = {"name":'lisi',"age":20} 

student["sex"] = '男'
print(student) # student = {"name":'lisi',"age":20,"sex":'男'} 

刪除元素

student = {"name":'zhangsan',"age":20} 

# 刪除Key-Value,返回Value
result = student.pop("name")
print(student) # student = {"age":20} 
print(result)  # zhangsan 

# 刪除Key-Value,返回Key-Value
result = student.popitem("name")
print(student) # student = {"age":20} 
print(result)  # ('name','zhangsan') 

# 清空
student.clear()
print(result)  # {}

合並

student = {"name":'zhangsan',"age":20} 
student_add = {"sex":'男'}

student.update(student_add)
print(student) # {"name":'zhangsan',"age":20,"sex":'男'} 

推導式

student = {"name":'zhangsan',"age":20} 

student_reverse = {v:k for k,v in student.items()}
print(student_reverse) # {"zhangsan":'name',"20":age}

六、集合類型

集合類型所表示的數據元素無序且不可以重復,不可以修改

如何表示

# 有元素的集合
set = {1,'我',True} 
# 空集合
set()

相關方法

添加元素

set = {1,'我',True} 

set.add('zhangsan')
print(set)             # {1,'我',True,'zhangsan'} 

刪除元素

set = {1,'我',True} 

# 隨機刪除一個元素
set.pop()
print(set)             # {'我',True} 

# 刪除指定元素
set.remove('True')
print(set)             # {1,'我'} 

# 清空
set.clear()
print(set)             # set() 

合並

set = {1,'我',True} 

# 兩個集合合並後產生新的集合
new_set = set.union( {True,False} ) 
print(new_set)                       # {1,'我',True,False} 

# 將一個可迭代對象合並到原有集合中
set.update(['False'])
print(set)                           # {1,'我',True,'False'} 

運算

set1 = {1,2,3} 
set2 = {3,4,5}

# 差集
print(set1 - ste2)  # {1,2}
print(set2 - ste1)  # {4,5}
# 交集
print(set1 & ste2)  # {3}
# 並集
print(set1 | ste2)  # {1,2,3,4,5}
# 差並集
print(set1 ^ ste2)  # {1,2,4,5}

七、五種數據類型所支持的運算符比較

在這裡插入圖片描述

八、數據的序列化和反序列化

序列化操作

將數據從內存持久化保存到硬盤的過程

----(將數據轉化為字符串)----
import json

list = ['name','age','city']
file = open('test.txt','w',encoding='utf8')

file.write(repr(list))       # 第一種方式
file.write(str(list))        # 第二種方式
file.write(json.dumps(list)) # 第三種方式
json.dump(list,file)         # 第四種方式

file.close()
----(將數據轉化為二進制)----
import pickle

list = ['name','age','city']
file = open('test.txt','wb',encoding='utf8')

file.write(pickle.dumps(list)) # 第一種方式
pickle.dump(list,file)         # 第二種方式

file.close()

反序列化操作

將數據從硬盤加載到內存的過程

# test.txt
["name","age","city"]
----(將字符串轉化為數據)----
import json

file = open('test.txt','r',encoding='utf8')

list1 = json.load(file)               # 第一種方式
print(list1) # ['name','age','city']
list2 = json.loads(file.read())       # 第二種方式
print(list2) # ['name','age','city']

file.close()
----(將二進制轉化為數據)----
import pickle

file = open('test.txt','rb',encoding='utf8')

list1 = pickle.loads(file.read())       # 第一種方式
print(list1) # ['name','age','city']
list2 = pickle.load(file)               # 第二種方式
print(list2) # ['name','age','city']

file.close()

到此這篇關於Python數據類型最全知識總結的文章就介紹到這瞭,更多相關Python數據類型內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: