《利用Python進(jìn)行數(shù)據(jù)分析·第2版》第3章 Python的數(shù)據(jù)結(jié)構(gòu)、函數(shù)和文件

本章討論Python的內(nèi)置功能,這些功能本書會用到很多。雖然擴(kuò)展庫,比如pandas和Numpy,使處理大數(shù)據(jù)集很方便,但它們是和Python的內(nèi)置數(shù)據(jù)處理工具一同使用的。
我們會從Python最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)開始:元組、列表、字典和集合。然后會討論創(chuàng)建你自己的、可重復(fù)使用的Python函數(shù)。最后,會學(xué)習(xí)Python的文件對象,以及如何與本地硬盤交互。
3.1 數(shù)據(jù)結(jié)構(gòu)和序列
Python的數(shù)據(jù)結(jié)構(gòu)簡單而強大。通曉它們才能成為熟練的Python程序員。
元組
元組是一個固定長度,不可改變的Python序列對象。創(chuàng)建元組的最簡單方式,是用逗號分隔一列值:
In [1]: tup = 4, 5, 6
In [2]: tup
Out[2]: (4, 5, 6)
當(dāng)用復(fù)雜的表達(dá)式定義元組,最好將值放到圓括號內(nèi),如下所示:
In [3]: nested_tup = (4, 5, 6), (7, 8)
In [4]: nested_tup
Out[4]: ((4, 5, 6), (7, 8))
用tuple
可以將任意序列或迭代器轉(zhuǎn)換成元組:
In [5]: tuple([4, 0, 2])
Out[5]: (4, 0, 2)
In [6]: tup = tuple('string')
In [7]: tup
Out[7]: ('s', 't', 'r', 'i', 'n', 'g')
可以用方括號訪問元組中的元素。和C、C++、JAVA等語言一樣,序列是從0開始的:
In [8]: tup[0]
Out[8]: 's'
元組中存儲的對象可能是可變對象。一旦創(chuàng)建了元組,元組中的對象就不能修改了:
In [9]: tup = tuple(['foo', [1, 2], True])
In [10]: tup[2] = False
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-c7308343b841> in <module>()
----> 1 tup[2] = False
TypeError: 'tuple' object does not support item assignment
如果元組中的某個對象是可變的,比如列表,可以在原位進(jìn)行修改:
In [11]: tup[1].append(3)
In [12]: tup
Out[12]: ('foo', [1, 2, 3], True)
可以用加號運算符將元組串聯(lián)起來:
In [13]: (4, None, 'foo') + (6, 0) + ('bar',)
Out[13]: (4, None, 'foo', 6, 0, 'bar')
元組乘以一個整數(shù),像列表一樣,會將幾個元組的復(fù)制串聯(lián)起來:
In [14]: ('foo', 'bar') * 4
Out[14]: ('foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'bar')
對象本身并沒有被復(fù)制,只是引用了它。
閱讀全文:http://t.cn/Run6gGa