One---python的六種數據類型及數據轉換

python的六種數據類型

python中數據類型分為不可變數據類型和可變數據類型

創新互聯建站服務項目包括夏邑網站建設、夏邑網站制作、夏邑網頁制作以及夏邑網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,夏邑網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到夏邑省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!

可變數據類型

可變數據類型包括:List(列表)、Dictionary(字典)、Set(集合)

不可變數據類型

不可編數據類型包括:Number(數字)、String(字符串)、Tuple(元組)

不可變數據類型與可變數據類型的區別

  1. 不可變數據類型
    • 不可變數據類型賦值后會創建一個新的內存地址空間
    • 并讓賦值數據指向這一新創建的地址,故兩個變量的內存地址并不相同
    • 重新賦值的數據,綁定到了新的內存地址,而不是修改之前的內存地址
#不可變數據類型
str1 = "ascdfg"
str2 = str1
print(str2)
     
print("----------------------------")
str1 = "ooooooopo"
print(id(str1))
print(id(str2))
--------------------------------------------
ascdfg
----------------------------


 > 運行結果顯示:內存地址不同
  1. 可變數據類型

    • 可變數據類型賦值后不會創建新的內存地址空間

    • 賦值數據與被賦值數據還是同時指向同一塊地址

#可變數據類型
list1 = [1,2,3]
list2 = list1 #將list1的值賦給list2
print("改變前")
print(list2) #輸出list2

print("----------------------------")

list1[0] = 2 #將list1的第一個元素賦值為2

print("改變后")
print("list1:\t",id(list1))
print("list2:\t",id(list2))

運行結果顯示:內存地址相同

Nmuber(數字)---不可變數據類型

  1. 整型(int)-通常被稱為是整型或整數,是正或負整數,不帶小數點,在python3中不限制大小,可以當作Long類型使用。布爾(bool)是整型的子類型。
  2. 浮點型(float)-浮點型由整數部分與小數部分組成,浮點型也可以用科學計數法表示。
  3. 復數(conplex)-復數由實數部分和虛數部分構成,可以用a+bi,或者complex(a,b)表示,復數的實部a和虛部b都是浮點型。

String(字符串)---不可變數據類型

  1. 字符串用單引號或雙引號括起來,+號是字符串的連接符,星號*表示復制當前字符串,與之結合的數字為復制的次數。
  2. python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始
  3. python中的字符串不能該改變

List(列表)---可變數據類型

  1. 列表中元素類型可以不相同,支持數字,字符串甚至可以包含列表(所謂嵌套)
  2. 和字符串一樣,列表同樣可以被索引和截取,列表被截取后返回一個包含所需元素的新列表
#列表截取
t = [1,5,6,7,2,9]
a = t[2:5]
b = t[2:]
print(a)
print(b)
---------------------------------------------------
[6, 7, 2]
[6, 7, 2, 9]

[2:5]是左閉右開的一個區間,故截取的是[6,2,7],而[2:]譯為截取從編號2開始到最后一個

列表函數及方法

append()方法添加列表項,并對數據項進行修改或更新

#append()方法添加列表項
list1 = ['aaaa','qwe','zxc']
list2 = list1
print("第三個元素為",list1[2])
list1.append('cccccc')
print(list2)
---------------------------------------------------
第三個元素為 zxc
['aaaa', 'qwe', 'zxc', 'cccccc']

del語句刪除列表元素

#使用del語句進行刪除列表項
list1 = ['asd','zxc','qwe']
del list1[0]
print(list1)
---------------------------------------------------
['zxc', 'qwe']

len(list)函數查詢列表元素個數

list1 = [1,2,5,6,8,2,4,2]
print(len(list1))
---------------------------------------------------
8

max(list)函數返回列表元素的最大值

list1 = [1,2,7,8,9,2,4,2]
print(max(list1))
---------------------------------------------------
9

min(list)函數返回列表元素的最小值

list1 = [1,2,7,8,9,2,4,2]
print(min(list1))
---------------------------------------------------
1

list(seq)函數將元組轉換為列表

tup = ('asx','apple',1,5,5)
print("tup的數據類型為",type(tup))
list1 = list(tup) #將tup元組轉換為列表并賦值給list1
print(list1)
print("list1的數據類型為",type(list1))
---------------------------------------------------
tup的數據類型為 <class 'tuple'>
['asx', 'apple', 1, 5, 5]
list1的數據類型為 <class 'list'>

list.count(obj)函數統計某個元素在列表中出現的次數

#count()方法統計某個元素在列表中出現的次數
list1 = [1,2,5,6,8,2,4,2]
list2 = list1.count(2)
print(list2)
---------------------------------------------------
3

list.extend(seq)函數在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)

#extend()方法進行擴展列表
list1 = ['apple','qaz','wsx']
list2 = list(range(0,5)) #range()創建0-4的列表
list1.extend(list2)
print(list1)
---------------------------------------------------
['apple', 'qaz', 'wsx', 0, 1, 2, 3, 4]

list.index(obj)從列表中找出某個值第一個匹配項的索引位置

#index()從列表找出某一個值第一個匹配項的索引位置
list1 = [1,5,3,6,9,8]
print(list1.index(3))
---------------------------------------------------
2

list.insert(index,obj)將對象插入列表

#insert()將對象插入列表
list1 = ['apple','qaz','wsx']
list1.insert(1,'qwe') #insert(索引位置,要插入的對象)
print(list1)
---------------------------------------------------
['apple', 'qwe', 'qaz', 'wsx']

list.pop([index=-1])移除列表中的一個元素(默認最后一個元素),并且返回該元素的值

#pop()移除列表的一個元素(默認最后一個元素),并返回該元素的值
list1 = ['apple','qaz','wsx']
list_pop = list1.pop(1)
print("刪除項為",list_pop)
print("列表現在為",list1)
---------------------------------------------------
刪除項為 qaz
列表現在為 ['apple', 'wsx']

list.remove(obj)移除列表中某個值的第一個匹配項

#remove()移除列表中某個值的第一個匹配項
list1 = ['qsd','apple','wsx','apple']
list_remove = list1.remove('apple')
print(list1)
---------------------------------------------------
['qsd', 'wsx', 'apple']

list.reverse()反向列表中的元素

#reverse()反向列表中的元素
list1 = ['apple','qaz','wsx']
list_re = list1.reverse()
print(list1)
---------------------------------------------------
['wsx', 'qaz', 'apple']

list.sort(key=None,reverse=False)對列表進行排序

#sort()對原列表進行排序
list1 = [1,5,3,6,9,8]
list0 = [1,6,4,2,3,8,1,9]
list2 = list0.sort(reverse=True) #reverse=true 降序
list3 = list1.sort(reverse=False) #reverse=falses 升序
print("降序",list0)
print("升序",list1)
---------------------------------------------------
降序 [9, 8, 6, 4, 3, 2, 1, 1]
升序 [1, 3, 5, 6, 8, 9]

list.clear()清空列表

#clear()清空列表
list1 = [1,5,3,6,9,8]
list1.clear()
print(list1)
---------------------------------------------------
[]

list.copy()復制列表

#copy()復制列表
list1 = [1,5,3,6,9,8]
list2 = list1.copy()
print(list2)
---------------------------------------------------
[1, 5, 3, 6, 9, 8]

Tuple(元組)---不可變數據類型

  1. 元組的元素不能更改,指的是元組所指向的內存地址不可變
  2. 元組使用小括號(),列表使用[]
  3. 元組中元素使用逗號分隔
  4. 元組中只包含一個元素時,需要在元組后面加逗號,否則括號會被當做運算符使用
tup1 = ("asd","asdasd",[1,2,5,9,8])
print(type(tup1))
print(tup1[-1])
---------------------------------------------------
<class 'tuple'>
[1, 2, 5, 9, 8]

Dictionary(字典)---可變數據類型

  1. 字典是可變容器模型,可以存儲任意類型對象
  2. 字典的每個鍵值{key:value}對用冒號進行分割,每個對之間用逗號分隔,整個字典包括在大括號中{}
  3. dict為python的關鍵字和內置函數,不能命名為變量
  4. 鍵必須是唯一的,且鍵是不可變的,如字符串、數字。但值不必,值可以是任何數據類型
  5. 字典值可以是任何python對象,可以是標準的,也可以是定義的,但鍵不行:(1)不允許同一個鍵出現兩次,創建是如果同一個鍵被賦值兩次,后一個值會被記住(2)鍵必須不可變,所以可以用數字,字符串或元組充當,而不能使用列表。

訪問字典中的值(通過鍵去訪問對應的值)

d = {"age":13,"sex":'男',"name":"lihua"}
print(d["sex"])
---------------------------------------------------
男

創建空字典的兩種方法

#創建空字典法一
emptydict = {}
print(emptydict)
print(len(emptydict))
print(type(emptydict))
---------------------------------------------------
{}
0
<class 'dict'>
#創建空字典法二
emptydict1 = dict()
print(emptydict1)
print(len(emptydict1))
print(type(emptydict1))
---------------------------------------------------
{}
0
<class 'dict'>

修改字典

#修改字典
d = {"age":13,"sex":'男',"name":"lihua"}
d["age"] = 10 #更新age
d["school"] = "北京大學" #增添信息
print(d["age"])
print(d["school"])
---------------------------------------------------
10
北京大學

刪除、添加字典元素

#刪除字典元素
d = {"age":13,"sex":'男',"name":"lihua"}
d1 = dict() #創建空字典
d1["name"] = "張偉" #添加信息
print(d1["name"])
del d1["name"] #刪除字典信息
d1.clear() #清除字典
print(d1)
---------------------------------------------------
張偉
{}

Set(集合)---可變數據類型

  1. 集合是一個無序的不重復的元素序列
  2. 可以使用大括號或set()函數創建集合(注:創建空集合必須用set()來創建,不可使用{}進行創建)
ax = {'apple','qwe','apple','lllsd','qwe'}
print(ax)
#創建集合
ax1 = set("adsa")
print(ax1)
#判斷元素是否在集合中
z = 'apple' in ax
print(z)
---------------------------------------------------
{'qwe', 'lllsd', 'apple'}
{'a', 'd', 's'}
True

Python3中的數據轉換

數據轉換可分為兩種:隱式類型轉換--自動完成、顯示類型轉換--需要使用類型函數進行轉換

隱式轉換

  1. 隱式轉換中python會自動將一種數據類型轉換成為另一種數據類型,不需要我們進行干預

將較低數據類型(整數)轉換為較高數據類型(浮點數)以避免數據丟失

num_int = 123
num_float = 1.23

num_new = num_int + num_float

print("num_int的數據類型",type(num_int))
print("num_float的數據類型",type(num_float))

print("num_new的值",num_new)
print("num_new的數據類型",type(num_new))
---------------------------------------------------
num_int的數據類型 <class 'int'>
num_float的數據類型 <class 'float'>
num_new的值 124.23
num_new的數據類型 <class 'float'>

顯示轉換

由于整型和字符串類型相加運算結果會報錯,輸出TypeError,因此在這種情況下無法進行隱式轉換。故python提供了一種解決方案稱為顯示轉換。

  • 在顯示類型轉換中,用戶將對象的數據類型轉換為所需的數據類型。
  • 我們使用int()、float()、str()等預定義函數來執行顯示類型轉換
#顯示類型轉換
num_int = 123
num_str = "456"

print("num_int的數據類型",type(num_int))
print("類型轉換前,num_str的數據類型",type(num_str))

num_str = int(num_str) #強制轉換為整型
print("類型轉換后,num_str的數據類型",type(num_str))

num_sum = num_int + num_str
print("num_int和num_str相加的結果為",num_sum)
print("sum的數據類型為",type(num_sum))
---------------------------------------------------
num_int的數據類型 <class 'int'>
類型轉換前,num_str的數據類型 <class 'str'>
類型轉換后,num_str的數據類型 <class 'int'>      
num_int和num_str相加的結果為 579
sum的數據類型為 <class 'int'>

Python推導式

python推導式是一種獨特的數據處理方式,可以從一個數據序列構建另一個新的數據序列的結構題,python支持各種數據結構的推導式。

列表(list)推導式

  1. out_exp_res:列表生成元素表達式,可以是有返回值的函數
  2. for out exp in input list:迭代input list將out exp傳入到out exp res表達式中
  3. if condition:條件語句,可以過濾列表中不符合條件的值
[表達式 for 變量 in 列表]
[out_exp_res for out_exp in input_list]
或
[表達式 for 變量 in 列表 if 條件]
[out_exp_res for out_exp in input_list if condition]
#列表推導式
news = ['Tom','Bob','Smith','Lorry','James','Curry']
new_names = [name.upper() for name in news if len(name)>3]
print(new_names)
---------------------------------------------------
['SMITH', 'LORRY', 'JAMES', 'CURRY']
#計算從0到30可以整除3的整數
match_30 = [i for i in range(31) if i % 3 == 0]
print(match_30)
---------------------------------------------------
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

本文標題:One---python的六種數據類型及數據轉換
轉載注明:http://m.kartarina.com/article36/dsogjsg.html

成都網站建設公司_創新互聯,為您提供移動網站建設手機網站建設網站制作搜索引擎優化網站設計用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設
主站蜘蛛池模板: 亚洲精品无码专区久久| 老司机无码精品A| 曰韩精品无码一区二区三区 | 午夜无码视频一区二区三区| 精品久久久无码中字| 日韩AV高清无码| 中文无码一区二区不卡αv| 久久久久成人精品无码| 国产精品无码一区二区在线| 99精品国产在热久久无码| 无码人妻一区二区三区免费看| 在人线av无码免费高潮喷水| 亚洲精品无码专区在线在线播放| 日韩A无码AV一区二区三区| 亚洲欧洲国产综合AV无码久久| a级毛片无码免费真人久久 | 久久激情亚洲精品无码?V| 无码国产69精品久久久久孕妇| 亚洲精品无码高潮喷水A片软| 国产免费无码AV片在线观看不卡| 免费无码国产在线观国内自拍中文字幕 | 久久人午夜亚洲精品无码区| 99久久国产热无码精品免费| 在人线av无码免费高潮喷水 | 丰满日韩放荡少妇无码视频| HEYZO无码综合国产精品227| 成人免费无码H在线观看不卡| 日韩av无码中文无码电影| 亚洲AV日韩AV永久无码绿巨人 | 国产丰满乱子伦无码专区| 国产精品无码无片在线观看| 久久久久久人妻无码| 亚洲av成人中文无码专区| 少妇无码太爽了不卡视频在线看 | 国产成人亚洲精品无码AV大片 | 国产精品亚韩精品无码a在线| 777爽死你无码免费看一二区| 曰韩人妻无码一区二区三区综合部| 午夜无码视频一区二区三区| 亚洲熟妇无码AV在线播放| 亚洲av永久无码精品秋霞电影秋 |