国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python基礎(chǔ)篇】Python中的七種數(shù)據(jù)類型

這篇具有很好參考價(jià)值的文章主要介紹了【Python基礎(chǔ)篇】Python中的七種數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前導(dǎo)

Python中的數(shù)據(jù)類型主要有:Number(數(shù)字)、Boolean(布爾)String(字符串)、List(列表)、Tuple(元組)Dictionary(字典)、Set(集合)。

其中又分為可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型,可變數(shù)據(jù)類型是指可以隨著函數(shù)的執(zhí)行發(fā)生變化,而不可變數(shù)據(jù)類型不可以改變
不可變數(shù)據(jù)類型(3個(gè)):Number(數(shù)字)Boolean(布爾)、String(字符串)Tuple(元組)
可變數(shù)據(jù)類型(4個(gè)):List(列表)、Dictionary(字典)、Set(集合)

問:如何判斷一個(gè)變量的類型?
答:1.可以使用type(變量名稱)方法,返回變量的數(shù)據(jù)類型;2.isinstance(變量名稱,數(shù)據(jù)類型),只能返回True或False

一、數(shù)字類型(Number)

Python3中有3種數(shù)據(jù)類型:int(整型)、float(浮點(diǎn)型)、complex(復(fù)數(shù))。
Python3的整型沒有限制大小,可以當(dāng)作Long類型來使用,且bool是整型的子類型。

# 整型int,浮點(diǎn)型float
a=2
b=2.6
print(a,b,type(a),type(b),isinstance(a,int))
# 輸出結(jié)果為
# 2 2.6 <class 'int'> <class 'float'> True

二、布爾類型(Boolean)

布爾類型是與邏輯相關(guān)的一種數(shù)據(jù)類型,且只有True和False兩個(gè)值。(注意:布爾值可以相加,相加之后類型就會(huì)轉(zhuǎn)換為int類型)

# 2.布爾型Boolean
c=True
d=False
d=c+d
print(type(c),type(d),d)
# 輸出結(jié)果
# <class 'bool'> <class 'int'> 1

三、字符串類型(String)

在Python變量定義中,通過單引號和雙引號引起來的值就是字符串str類型。

3.1 字符串索引

【Python基礎(chǔ)篇】Python中的七種數(shù)據(jù)類型
字符串正索引a[i]從0開始表示首個(gè)字符,負(fù)索引a[-1]從-1開始表示字符串末尾的字符。

3.2 字符串截取、拼接和復(fù)用

a = b[begin, end, step],begin表示開始位置,默認(rèn)為0,end表示結(jié)束位置,默認(rèn)為變量長度,step表示步長,默認(rèn)為1。例如:a【i,j】,表示從位置i開始到位置j結(jié)束,其中截取的字符串不包括位置j。
注意:切片中負(fù)索引的使用并不是表示從尾到頭的獲取,索引只是限制了數(shù)據(jù)獲取的范圍。
步長才是確定讀取順序,如果步長為負(fù)數(shù),則是從尾到頭讀取,如果是正數(shù),則是從頭到尾讀取。

str1 = "hello,world!"
print(str1[::])
print(str1[2:5])
print(str1[2,6,2])
print(str1[-1:-4])
print(str1[-5:-2])
print(str1[-1:-5:-1])

# 輸出結(jié)果
hello,world!
llo
lo
空
orl
!dlr
a = "我是王菜鳥"
b = ",你呢"
print(a[0],a[-1],a[:3],a[1,-1],a+b,a*2)

# 輸出結(jié)果
我 鳥 我是王 是王菜 我是王菜鳥,你呢 我是王菜鳥我是王菜鳥

四、列表類型(List)

列表是經(jīng)常用到的數(shù)據(jù)類型,其元素可以是字符串、數(shù)字、列表、元組等自定義的對象。列表是以[]定義,用英文逗號分隔開的集合,元素是可以重復(fù)的。

列表中的操作通常包含索引、切片、in和not in、len、操作符+和*添加/刪除/查詢元素、排序和反轉(zhuǎn)、將元組、字符串等序列轉(zhuǎn)換成列表(不會(huì)修改原有的序列)。
列表的索引和切片與字符串一致,此處不做贅述。

接下來將介紹在列表中的部分操作:

4.1 in和not in

判斷某個(gè)值是否存在于列表中,若存在則返回True,否則返回False(注意:存在是指和列表的某個(gè)元素相同)。

store = [[65, 33], '女', 'wang', 24, 2.3]
print("wang" in store)
print("33" in store)
print("女" not in store)

# 輸出結(jié)果
True
False
False
4.2 len()

len()方法返回列表元素?cái)?shù)量

store = [[65, 33], '女', 'wang', 24, 2.3]
print(len(store))

# 輸出結(jié)果
5
4.3 添加/刪除/查詢元素
添加/刪除/查詢元素
操作 方法 描述
添加元素 append(obj) 追加元素到列表中,即在列表末尾增加一個(gè)指定元素
extend(iterable) 追加多個(gè)元素到列表中,即在列表末尾增加多個(gè)元素,iterable是序列,表示要添加的元素序列
insert(index, obj) 在列表指定位置插入元素(指定位置及之后的元素都向后移動(dòng)一個(gè)下標(biāo))
刪除元素 pop(index) 刪除并返回列表中指定索引的元素,index默認(rèn)為-1,即最后一個(gè)元素
remove(element) 刪除第一個(gè)與指定值匹配一致的元素(不會(huì)返回相關(guān)值)
del 刪除列表元素或整個(gè)列表
clear() 刪除列表中所有元素,即成功后,列表是個(gè)空列表
查詢元素 index(value, start=None, stop=None) 從列表中的指定范圍找出與指定值第一個(gè)匹配項(xiàng)的索引位置(start和stop不能根據(jù)關(guān)鍵字傳參)
count(obj) 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)

添加元素

# append
store = [[65, 33], '女', 'wang', 24, 2.3]
store.append("王菜鳥")
print(store)
store.append([66, 68])
print(store)

# extend
store.extend(["Kevin",168])
print(store)

# insert
store.insert(2,999)
print(store)


# 輸出結(jié)果
[[65, 33], '女', 'wang', 24, 2.3, '王菜鳥']
[[65, 33], '女', 'wang', 24, 2.3, '王菜鳥', [66, 68]]
[[65, 33], '女', 'wang', 24, 2.3, '王菜鳥', [66, 68], 'Kevin', 168]
[[65, 33], '女', 999, 'wang', 24, 2.3, '王菜鳥', [66, 68], 'Kevin', 168]

刪除元素

print(store.pop(2))
store.remove('Kevin')
print(store)
store.clear()
print(store)

# 輸出結(jié)果
999
[]
[]

查詢元素

store = [[65, 33], '女', 'wang', 24, 2.3,24]
print(store.index('女'))
print(store.count(24))

# 輸出結(jié)果
1
2
4.4 排序(sort)和反轉(zhuǎn)(reverse)

排序(sort)

格式:list.sort(key=None, reverse=False)
key – 指定帶有一個(gè)參數(shù)并返回一個(gè)對象的函數(shù),用于從列表中的元素提取需要比較的內(nèi)容
sort()默認(rèn)升序排序,即reverse=False,降序reverse=True

list1 = [22, 11, 25, 98, 72, 68, 49]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)

# 輸出結(jié)果
[11, 22, 25, 49, 68, 72, 98]
[98, 72, 68, 49, 25, 22, 11]

注意:sort中key參數(shù)的用法

# 按照總分成績降序排名
list1 = [[97, 54, 93], [59, 78, 83], [44, 64, 97], [83, 79, 73]]
def sum_scores(scores):
    return scores[0] + scores[1] + scores[2]
    
list1.sort(key=sum_scores, reverse=True)
print(list1)

# 輸出結(jié)果

反轉(zhuǎn)(reverse)
reverse:排序規(guī)則,reverse = True 降序, reverse = False 升序(默認(rèn))。

list1 = [22, 11, 25, 98, 72, 68, 49]
list1.reverse()
print(list1)

# 輸出結(jié)果
[49, 68, 72, 98, 25, 11, 22]
4.5 list()

將元組、字符串等序列轉(zhuǎn)成列表(不會(huì)修改原有的序列)。

# 元組
tup = (22, 86, 26, 35)
print(list(tup))
print(tup)

# 字符串
str1 = "Happy New Year"
print(list(str1))
print(str1)

# 輸出結(jié)果
[22, 86, 26, 35]
(22, 86, 26, 35)

['H', 'a', 'p', 'p', 'y', ' ', 'N', 'e', 'w', ' ', 'Y', 'e', 'a', 'r']
Happy New Year

五、集合(Set)

集合Set是一個(gè)無序且不可重復(fù)的序列,使用{}set()函數(shù)進(jìn)行創(chuàng)建,如果想創(chuàng)建一個(gè)空集合必須用 set() ,{ } 是用來創(chuàng)建一個(gè)空字典的。
注意:集合(Set)只存儲(chǔ)不可變的數(shù)據(jù)類型,如Number(數(shù)字)、字符串、元組等,而無法存儲(chǔ)列表、字典、集合這些可變的數(shù)據(jù)類型。

set1 = set({"Kevin", "Lucy", "Toke", 24})
print(set1)

set2 = set("wang")
print(set2)

set3 = set({22, 33})
print(set3)

# 輸出結(jié)果
{'Toke', 24, 'Lucy', 'Kevin'}
{'w', 'g', 'n', 'a'}
{33, 22}

六、字典類型(Dictionary)

字典以鍵值對(key: value)的方式存儲(chǔ)對象。
1、鍵(key)在字典中必須是唯一的,且鍵是不可變的數(shù)據(jù)類型,如字符串、數(shù)字、元組。如果創(chuàng)建時(shí)鍵被賦值多次,最后一個(gè)值才被存儲(chǔ)。
2、值(value)可以是任意對象,比如None、數(shù)值、字符串、字典等。

dict1 = dict()
print(len(dict1), type(dict1))

dict2 = {}
print(len(dict2), type(dict2))

# 如果創(chuàng)建時(shí)鍵被賦值多次,最后一個(gè)值才被存儲(chǔ)
dict3 = {"a": "Kevin", "b": "Lucy", "a": "Toke"}
print(dict3)

# 輸出結(jié)果
0 <class 'dict'>
0 <class 'dict'>
{'a': 'Toke', 'b': 'Lucy'}

七、其他

7.1 深拷貝與淺拷貝

Python提供了針對列表、集合、字典等數(shù)據(jù)類型的深拷貝和淺拷貝方法。
淺拷貝:對數(shù)據(jù)進(jìn)行地址拷貝,copy()方法只是增加了指向?qū)ο蟮闹羔?,并沒有分配新的空間去存儲(chǔ)數(shù)據(jù);
深拷貝:分配新的空間存儲(chǔ)數(shù)據(jù),原數(shù)據(jù)與深拷貝后的數(shù)據(jù)互不影響

函數(shù) 描述
iterable.copy() 返回可迭代對象iterable的淺拷貝數(shù)據(jù)
copy.deepcopy(iterable) 返回可迭代對象iterable的深拷貝數(shù)據(jù)

如果從相對簡單的角度來理解的話,淺拷貝和深拷貝是針對嵌套對象的區(qū)別,對原數(shù)據(jù)的嵌套對象的修改,淺拷貝對應(yīng)的嵌套對象會(huì)同步影響,深拷貝就不會(huì)受影響。
從存儲(chǔ)的角度來理解,淺拷貝就是增加了指針指向值的存儲(chǔ)地址,并沒有對值開辟新的內(nèi)存空間進(jìn)行存儲(chǔ),深拷貝則是開辟新的內(nèi)存空間去存儲(chǔ)并指針指向新的內(nèi)存地址。

7.2 類型比較

列表[ ](list):有序可改變集合,允許重復(fù)數(shù)據(jù)。
元組( )(tuple):有序不可改變集合,允許重復(fù)數(shù)據(jù)。
集合{ }(set):無序無索引(索引為鍵值)集合,無重復(fù)數(shù)據(jù)。
字典{ }(dictionary):無序,可變,有索引集合,無重復(fù)數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-431341.html

到了這里,關(guān)于【Python基礎(chǔ)篇】Python中的七種數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SQL的七種JOIN

    SQL的七種JOIN

    在使用 join 時(shí), on 和 where 條件的區(qū)別如下: on 條件是在生成臨時(shí)表時(shí)使用的條件,它不管 on 中的條件是否為真,都會(huì)返回左邊表中的記錄。 where 條件是在臨時(shí)表生成好后,再對臨時(shí)表進(jìn)行過濾的條件。這時(shí)已經(jīng)沒有 join 的含義了,條件不符的就全部過濾掉。 數(shù)據(jù)準(zhǔn)備,我

    2024年04月15日
    瀏覽(38)
  • 索引失效的七種情況

    以上這些情況都可能導(dǎo)致數(shù)據(jù)庫查詢時(shí)無法有效地使用索引,從而影響查詢性能。為了避免索引失效,需要優(yōu)化查詢語句,合理設(shè)計(jì)索引,盡量避免上述情況的出現(xiàn)。

    2024年02月10日
    瀏覽(23)
  • 關(guān)于Ping命令的七種用法

    關(guān)于Ping命令的七種用法

    今天我們來詳細(xì)看下ping命令詳細(xì)使用: 一、ping基本使用詳解 在網(wǎng)絡(luò)中ping是一個(gè)十分強(qiáng)大的TCP/IP工具。它的作用主要為: 1、用來檢測網(wǎng)絡(luò)的連通情況和分析網(wǎng)絡(luò)速度 2、根據(jù)域名得到服務(wù)器IP 3、根據(jù)ping返回的TTL值來判斷對方所使用的操作系統(tǒng)及數(shù)據(jù)包經(jīng)過路由器數(shù)量。 我

    2024年02月12日
    瀏覽(19)
  • PHP中header()的七種用法

    我們在實(shí)際開發(fā)中經(jīng)常使用header()實(shí)現(xiàn)一些功能,這篇文章介紹關(guān)于header()的7中用法,需要的伙伴的開參考一下。 PHP header()的7中用法: 1、跳轉(zhuǎn)頁面 可以使用header()實(shí)現(xiàn)跳轉(zhuǎn)頁面功能。 2、聲明 content-type 調(diào)用API接口時(shí),一般都會(huì)聲明 content-type 的類型,否則無法讀寫數(shù)據(jù)。

    2024年02月10日
    瀏覽(18)
  • Postman的七種斷言方法+超時(shí)設(shè)置!

    Postman的七種斷言方法+超時(shí)設(shè)置!

    超時(shí)的設(shè)置 Settings-General- Request Timeout in ms(0 for infinity):設(shè)置請求超時(shí)的時(shí)間,默認(rèn)為0 1.postman斷言介紹 postman在發(fā)送請求后,需要對返回的結(jié)果做判斷,驗(yàn)證是否符合預(yù)期,如狀態(tài)碼、響應(yīng)頭、響應(yīng)正文等信息進(jìn)行斷言操作,在設(shè)置時(shí)會(huì)給定一個(gè)預(yù)期結(jié)果,在發(fā)送請求后會(huì)得到

    2024年02月03日
    瀏覽(36)
  • java創(chuàng)建多線程的七種方式

    一、繼承Thread,重寫run方法 通過自定義一個(gè)類(這里起名為:MyThread),繼承Thread類,重寫run方法,最后在main方法中new出MyThread實(shí)例,調(diào)用這個(gè)實(shí)例的繼承的Thread類的start方法創(chuàng)建一個(gè)線程。 二、實(shí)現(xiàn)Runnable接口,重寫run方法 通過自定義一個(gè)類(這里起名為:MyRunnable)實(shí)現(xiàn)

    2024年02月09日
    瀏覽(25)
  • java中HashMap的七種遍歷方式

    感興趣的話大家可以關(guān)注一下公眾號 : 猿人劉先生 , 歡迎大家一起學(xué)習(xí) , 一起進(jìn)步 , 一起來交流吧! HashMap的多種遍歷方式從大體中歸類 , 可以分為以下4類 : 迭代器(Iterator) For Each Lambda (JDK 1.8 +) Streams API (JDK 1.8 +) 但是每種方式又有不同的實(shí)現(xiàn)類型 : 使用迭代器(Iterator)En

    2023年04月09日
    瀏覽(18)
  • VUE組件間通信的七種方式

    目錄 1、 props / $emit (1)父組件向子組件傳值(props的用法) (2)子組件向父組件傳遞數(shù)據(jù)($emit的用法) 2、ref / $refs 用法: 3、eventBus事件總線($emit / $on) (1)創(chuàng)建事件中心管理組件之間的通信 (2)發(fā)送事件假設(shè)有兩個(gè)兄弟組件 firstCom和secondCom的父組件: 在firstCom組件

    2024年02月05日
    瀏覽(18)
  • 關(guān)于Ping命令的七種常規(guī)用法(詳解)

    關(guān)于Ping命令的七種常規(guī)用法(詳解)

    一、 ping 基本使用詳解 在網(wǎng)絡(luò)中 ping 是一個(gè)十分強(qiáng)大的 TCP/IP 工具。它的作用主要為: 1 、用來檢測網(wǎng)絡(luò)的連通情況和分析網(wǎng)絡(luò)速度 2 、根據(jù)域名得到服務(wù)器 IP 3 、根據(jù) ping 返回的 TTL 值來判斷對方所使用的操作系統(tǒng)及數(shù)據(jù)包經(jīng)過路由器數(shù)量。 我們通常會(huì)用它來直接 ping ip 地

    2024年04月11日
    瀏覽(21)
  • VUE實(shí)現(xiàn)當(dāng)前頁面刷新的七種方法

    ????????使用 location.reload() 方法可以簡單地實(shí)現(xiàn)當(dāng)前頁面的刷新,這個(gè)方法會(huì)重新加載當(dāng)前頁面,類似于用戶點(diǎn)擊瀏覽器的刷新按鈕。 ????????在 Vue 中,可以將該方法綁定到 Vue 實(shí)例上,比如在 Vue 的 methods 中添加如下的方法: ????????然后在模板中調(diào)用該方法即

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包