亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python 元組(Tuple)操作詳解

 更新時(shí)間:2014年03月11日 16:46:23   作者:  
Python的元組與列表類(lèi)似,不同之處在于元組的元素不能修改,元組使用小括號(hào),列表使用方括號(hào),元組創(chuàng)建很簡(jiǎn)單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開(kāi)即可

一、創(chuàng)建元組

復(fù)制代碼 代碼如下:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

創(chuàng)建空元組
復(fù)制代碼 代碼如下:
tup1 = ();

元組中只包含一個(gè)元素時(shí),需要在元素后面添加逗號(hào)來(lái)消除歧義
復(fù)制代碼 代碼如下:
tup1 = (50,);

元組與字符串類(lèi)似,下標(biāo)索引從0開(kāi)始,可以進(jìn)行截取,組合等。
二、訪(fǎng)問(wèn)元組
元組可以使用下標(biāo)索引來(lái)訪(fǎng)問(wèn)元組中的值,如下實(shí)例:
復(fù)制代碼 代碼如下:
#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );

print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
#以上實(shí)例輸出結(jié)果:
#tup1[0]:  physics
#tup2[1:5]:  [2, 3, 4, 5]


三、修改元組
元組中的元素值是不允許修改的,但我們可以對(duì)元組進(jìn)行連接組合,如下實(shí)例:
復(fù)制代碼 代碼如下:
#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# 以下修改元組元素操作是非法的。
# tup1[0] = 100;

# 創(chuàng)建一個(gè)新的元組
tup3 = tup1 + tup2;
print tup3;
#以上實(shí)例輸出結(jié)果:
#(12, 34.56, 'abc', 'xyz')


四、刪除元組
元組中的元素值是不允許刪除的,但我們可以使用del語(yǔ)句來(lái)刪除整個(gè)元組,如下實(shí)例:
復(fù)制代碼 代碼如下:
#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);

print tup;
del tup;
print "After deleting tup : "
print tup;


#以上實(shí)例元組被刪除后,輸出變量會(huì)有異常信息,輸出如下所示:
#('physics', 'chemistry', 1997, 2000)
#After deleting tup :
#Traceback (most recent call last):
#  File "test.py", line 9, in <module>
#    print tup;
#NameError: name 'tup' is not defined[/code]
五、元組運(yùn)算符
與字符串一樣,元組之間可以使用 + 號(hào)和 * 號(hào)進(jìn)行運(yùn)算。這就意味著他們可以組合和復(fù)制,運(yùn)算后會(huì)生成一個(gè)新的元組。

六、元組索引,截取
因?yàn)樵M也是一個(gè)序列,所以我們可以訪(fǎng)問(wèn)元組中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元組:

復(fù)制代碼 代碼如下:
L = ('spam', 'Spam', 'SPAM!')


七、無(wú)關(guān)閉分隔符
任意無(wú)符號(hào)的對(duì)象,以逗號(hào)隔開(kāi),默認(rèn)為元組,如下實(shí)例:

復(fù)制代碼 代碼如下:
#!/usr/bin/python

print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;


以上實(shí)例允許結(jié)果:
復(fù)制代碼 代碼如下:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

八、元組內(nèi)置函數(shù)
Python元組包含了以下內(nèi)置函數(shù)
1、cmp(tuple1, tuple2):比較兩個(gè)元組元素。
2、len(tuple):計(jì)算元組元素個(gè)數(shù)。
3、max(tuple):返回元組中元素最大值。
4、min(tuple):返回元組中元素最小值。
5、tuple(seq):將列表轉(zhuǎn)換為元組。

九、另一種解讀

tuple和list非常類(lèi)似,但是tuple一旦初始化就不能修改,比如同樣是列出同學(xué)的名字:

復(fù)制代碼 代碼如下:
>>> classmates = ('Michael', 'Bob', 'Tracy')

現(xiàn)在,classmates這個(gè)tuple不能變了,它也沒(méi)有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。
不可變的tuple有什么意義?因?yàn)閠uple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple。
tuple的陷阱:當(dāng)你定義一個(gè)tuple時(shí),在定義的時(shí)候,tuple的元素就必須被確定下來(lái),比如:

復(fù)制代碼 代碼如下:
>>> t = (1, 2)
>>> t
(1, 2)

如果要定義一個(gè)空的tuple,可以寫(xiě)成():
復(fù)制代碼 代碼如下:
>>> t = ()
>>> t
()

但是,要定義一個(gè)只有1個(gè)元素的tuple,如果你這么定義:
復(fù)制代碼 代碼如下:
>>> t = (1)
>>> t
1

定義的不是tuple,是1這個(gè)數(shù)!這是因?yàn)槔ㄌ?hào)()既可以表示tuple,又可以表示數(shù)學(xué)公式中的小括號(hào),這就產(chǎn)生了歧義,因此,Python規(guī)定,這種情況下,按小括號(hào)進(jìn)行計(jì)算,計(jì)算結(jié)果自然是1。
所以,只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號(hào),,來(lái)消除歧義:
復(fù)制代碼 代碼如下:
>>> t = (1,)
>>> t
(1,)

Python在顯示只有1個(gè)元素的tuple時(shí),也會(huì)加一個(gè)逗號(hào),,以免你誤解成數(shù)學(xué)計(jì)算意義上的括號(hào)。

在來(lái)看一個(gè)“可變的”tuple:

復(fù)制代碼 代碼如下:
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

這個(gè)tuple定義的時(shí)候有3個(gè)元素,分別是'a','b'和一個(gè)list。不是說(shuō)tuple一旦定義后就不可變了嗎?怎么后來(lái)又變了?

別急,我們先看看定義的時(shí)候tuple包含的3個(gè)元素:
tuple-0
當(dāng)我們把list的元素'A'和'B'修改為'X'和'Y'后,tuple變?yōu)椋?BR>tuple-1
表面上看,tuple的元素確實(shí)變了,但其實(shí)變的不是tuple的元素,而是list的元素。tuple一開(kāi)始指向的list并沒(méi)有改成別的list,所以,tuple所謂的“不變”是說(shuō),tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向'a',就不能改成指向'b',指向一個(gè)list,就不能改成指向其他對(duì)象,但指向的這個(gè)list本身是可變的!
理解了“指向不變”后,要?jiǎng)?chuàng)建一個(gè)內(nèi)容也不變的tuple怎么做?那就必須保證tuple的每一個(gè)元素本身也不能變。

相關(guān)文章

  • PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類(lèi)GCNConv參數(shù)詳解

    PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類(lèi)GCNConv參數(shù)詳解

    這篇文章主要為大家介紹了PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類(lèi)GCNConv參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python使用Quart作為web服務(wù)器的代碼實(shí)現(xiàn)

    Python使用Quart作為web服務(wù)器的代碼實(shí)現(xiàn)

    Quart 是一個(gè)異步的 Web 框架,它使用 ASGI 接口(Asynchronous Server Gateway Interface)而不是傳統(tǒng)的 WSGI,這使得 Quart 特別適合用于構(gòu)建需要處理大量并發(fā)連接的高性能 Web 應(yīng)用程序,本文給大家介紹了Python使用Quart作為web服務(wù)器的代碼實(shí)現(xiàn)
    2024-06-06
  • 三行Python代碼提高數(shù)據(jù)處理腳本速度

    三行Python代碼提高數(shù)據(jù)處理腳本速度

    Python是一門(mén)非常適合處理數(shù)據(jù)和自動(dòng)化完成重復(fù)性工作的編程語(yǔ)言,我們?cè)谟脭?shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型之前,通常都需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,而Python就非常適合完成這項(xiàng)工作。本文將為大家介紹如何利用Python代碼讓你的數(shù)據(jù)處理腳本快別人4倍,需要的可以參考一下
    2022-03-03
  • 使用python實(shí)現(xiàn)ANN

    使用python實(shí)現(xiàn)ANN

    這篇文章主要為大家詳細(xì)介紹了使用python實(shí)現(xiàn)ANN的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • win10系統(tǒng)Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安裝教程

    win10系統(tǒng)Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安裝教程

    這篇文章主要介紹了win10系統(tǒng) Anaconda 和 Pycharm 的 Tensorflow2.0 之 CPU和 GPU 版本安裝教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python簡(jiǎn)單實(shí)現(xiàn)TCP包發(fā)送十六進(jìn)制數(shù)據(jù)的方法

    Python簡(jiǎn)單實(shí)現(xiàn)TCP包發(fā)送十六進(jìn)制數(shù)據(jù)的方法

    這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)TCP包發(fā)送十六進(jìn)制數(shù)據(jù)的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Python實(shí)現(xiàn)TCP數(shù)據(jù)傳輸及發(fā)送十六進(jìn)制數(shù)據(jù)包的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • python使用pyshp讀寫(xiě)shp文件的實(shí)現(xiàn)

    python使用pyshp讀寫(xiě)shp文件的實(shí)現(xiàn)

    本文主要介紹了python使用pyshp讀寫(xiě)shp文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python異步編程之a(chǎn)syncio低階API的使用詳解

    python異步編程之a(chǎn)syncio低階API的使用詳解

    asyncio中低階API的種類(lèi)很多,涉及到開(kāi)發(fā)的5個(gè)方面,這篇文章主要為大家詳細(xì)介紹了這些低階API的具體使用,感興趣的小伙伴可以學(xué)習(xí)一下
    2024-01-01
  • Python字符串常用方法以及其應(yīng)用場(chǎng)景詳解

    Python字符串常用方法以及其應(yīng)用場(chǎng)景詳解

    本人學(xué)習(xí)python時(shí)的總結(jié),并不需要記住,知道有這個(gè)方法,拿起來(lái)用就行,下面這篇文章主要給大家介紹了關(guān)于Python字符串常用方法以及其應(yīng)用場(chǎng)景的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python中單元測(cè)試的快速入門(mén)指南

    Python中單元測(cè)試的快速入門(mén)指南

    在這篇文章中,我們會(huì)深入探討Python單元測(cè)試的各個(gè)方面,包括它的基本概念、基礎(chǔ)知識(shí)、實(shí)踐方法、高級(jí)話(huà)題,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07

最新評(píng)論