Python學習筆記——Python數(shù)據(jù)類型

  • 1.列表
    • 1.1取單個值
    • 1.2切片獲取子列表
    • 1.3用len()函數(shù)獲取列表長度
    • 1.4列表的循環(huán)
    • 1.5列表的鏈接和復制
    • 1.6列表的增沮协、刪盟猖、查
    • 1.7列表的排序——sort()方法
  • 2.字符串
    • 2.1 字符串的表示
    • 2.2 下標和切片
    • 2.3 in和not in 操作
    • 2.4 常用字符串方法
    • 2.5 pyperclip模塊 —— 拷貝粘貼字符串
  • 3.元組tuple
    • 3.1 概念
    • 3.2 列表和原子互相轉(zhuǎn)換類型
  • 4.字典
    • 4.1 字典的特性
    • 4.2 添加一個新的鍵值對
    • 4.3 查找
    • 4.4 循環(huán)
  • 5.copy模塊

1. 列表

“列表”是一個值腮敌,術(shù)語“列表值”指的是列表本身该互,而不是指列表值之內(nèi)的那些值留攒。
列表值看起來像這樣:['cat','bat','rat','elephant']

列表中的值也稱為“表項”捌斧。表項用逗號分隔。

列表值本身包含多個值西土。[]是一個空列表讶舰,不包含任何值。

1.1 取單個值/修改值

利用下標來取值需了,eg:list[index] 取列表list第index+1個值
修改單個值即 list[index] = newvar

負數(shù)下標

雖然下標從0開始并向上增長跳昼,但也可以用負整數(shù)作為下標。整數(shù)值?1指的是列表中的最后一個下標肋乍,?2指的是列表中倒數(shù)第二個下標鹅颊,以此類推。

1.2 切片獲取子列表

“切片”可以從列表中取得多個值墓造,結(jié)果是一個新列表堪伍。切片輸入在一對方括號中,像下標一樣觅闽,但它有兩個冒號分隔的整數(shù)帝雇。spam[1:4]是一個列表的切片。在一個切片中蛉拙,++第一個整數(shù)是切片開始處的下標尸闸。第二個整數(shù)是切片結(jié)束處的下標。切片向上增長刘离,直至第二個下標的值室叉,但不包括它。++

>>> spam = ['cat', 'bat', 'rat', 'elephant'] 
>>> spam[ 0: 4] 
['cat', 'bat', 'rat', 'elephant'] 
>>> spam[ 1: 3] 
['bat', 'rat'] 
>>> spam[ 0:- 1]
['cat', 'bat', 'rat']
>>> spam[: 2]
['cat', 'bat'] 
>>> spam[ 1:] 
['bat', 'rat', 'elephant'] 
>>> spam[:] 
['cat', 'bat', 'rat', 'elephant']

也可以利用切片修改列表某一段的值:

list = [1,2,3,4,5]
list[1:2] = [3, 1]

1.3 用len()函數(shù)獲取列表長度

list=[1,2,3,4]
len(list)

1.4 列表的循環(huán)

  • 常見迭代
for i in [1,2,3,4] 
    print(1)
  • 下標迭代
list[1,2,3,4]
for i in rang(len(list))
    print(list[i])

1.5 列表的鏈接和復制

+操作符可以連接兩個列表硫惕,得到一個新列表茧痕。*操作符可以用于一個列表和一個整數(shù),實現(xiàn)列表的復制恼除。

list = [1,2,3,4]
linkList = list + [5,6,7,8]
copyList = list * 2
print(linkList)
print(copyList)

得到:

1,2,3,4,5,6,7,8

1,2,3,4,1,2,3,4

1.6 列表的增踪旷、刪曼氛、查

1.6.1 插入

  • append()方法

    在列表末尾添加一個新值

  • insert() 方法

    在列表任意下標處添加一個新值list.insert(index, var)

1.6.2 刪除值

  • del關(guān)鍵字

    list = [1,2,3,4]
    del list[0]
    print(list)
    

    得到:
    2,3令野,4

  • remove()方法

    list.remove(var)
    

    刪除不存在的值會導致ValueError錯誤舀患,若同一個值存在多次,只有第一次出現(xiàn)的值會被刪除

1.6.3 查找

  • in和not in

    'a' in ['a','b','c','d']
    

    得到True

    'a' not in ['a','b','c','d']
    

    得到False

  • index()方法

    index()方法傳入一個值气破,如果該值存在于列表中聊浅,就返回它的下標。如果該值不在列表中现使,Python就報ValueError低匙。

1.7 列表的排序——sort()方法

spam=[2,5,3.14,1,-7]
spam.sort()
print(spam)
spam=['ants','cats','dogs','badgers','elephants']
spam.sort()
print(spam)

得到:
[-7,1,2,3.14,5]
['ants','badgers','cats','dogs','elephants']

也可以指定reverse關(guān)鍵字參數(shù)為True,讓sort()按逆序排序

spam.sort(reverse=True)
print(spam)

得到:
['elephants','dogs','cats','badgers','ants']

注意

  • sort()方法對原列表排序碳锈。不要寫出spam=spam.sort()這樣的代碼顽冶,試圖記錄返回值。
  • 其次售碳,不能對既有數(shù)字又有字符串值的列表排序强重,因為Python不知道如何比較它們。
  • sort()方法對字符串排序時贸人,使用“ASCII字符順序”间景,而不是實際的字典順序。即大寫字母排在小寫字母之前艺智。
    spam=['Alice','ants','Bob','badgers','Carol','cats']
    spam.sort()
    print(spam)
    
    得到
    ['Alice','Bob','Carol','ants','badgers','cats']
    如果需要按照普通的字典順序來排序拱燃,就在sort()方法調(diào)用時,將關(guān)鍵字參數(shù)key設置為str.lower力惯。
    spam=['a','z','A','Z']
    spam.sort(key=str.lower)
    >>>spam['a','A','z','Z']
    

2. 字符串

字符串和列表很相似對于列表的許多操作也可以用于字符串:按下表取值、切片召嘶、for循環(huán)父晶、len()、in和not in弄跌。

字符串是不可變的數(shù)據(jù)類型甲喝,如果對字符串的某一個字符重新賦值,將會報TypeError錯誤铛只。

2.1 字符串的表示

以單引號開始單引號結(jié)束埠胖,或以雙引號開始雙引號結(jié)束。

  • 轉(zhuǎn)義字符:\
    字符串中的特殊符號如:'淳玩、" 可以用',"表示
  • 原始字符串
    在字符串開頭加r直撤,使之變?yōu)樵甲址甲址雎运修D(zhuǎn)義字符
    print(r'That\'s a cat')
    
    輸出為:That's a cat
  • 多行字符串:三個引號包裹字符串 \
    s = """Dear Alice, 
    Eve's cat has been arrested for catnapping, cat burglary, and extortion. 
    Sincerely,
    Bob
    """
    
    多行字符串也常用作多行注釋(#表示單行注釋)蜕着,即定義一個無引用的多行字符串谋竖。

2.2 下標和切片

字符串像列表一樣红柱,可以使用下標和切片。

2.3 in和not in 操作

像列表一樣蓖乘,in和not in操作也可以用于符串锤悄。

2.4 常用字符串方法

  • upper() 返回一個新字符串,小寫字母被替換為大寫字母嘉抒。
  • lower() 返回一個新字符串零聚,大寫字母被替換為小寫字母。
  • isupper() 是否所有字母都是大寫些侍。
  • islower 是否所有字母都是小寫隶症。
  • isalpha() 是否字符串只包含字母,并且非空娩梨。
  • isalnum() 是否字符串只包含字母和數(shù)字沿腰,并且非空。
  • isdecimal() 是否字符串只包含數(shù)字字符狈定,并且非空颂龙。
  • isspace() 是否字符串只包含空格、制表符和換行纽什,并且非空措嵌。
  • istitle() 是否字符串僅包含以大寫字母開頭、后面都是小寫字母的單詞芦缰。
  • startswith(str) 是否以str開頭企巢。
  • endswith(str) 是否以str結(jié)束。
  • str.join(list) 返回list拼接而成的字符串让蕾,在每個元素之間插入str浪规。
  • split(str) 與join方法相反,返回一個列表探孝,str可以不傳笋婿,默認以空白字符分割,
  • rjust(len, char)顿颅、ljust(len,char)缸濒、center(len,char)對齊文本。分別表示右對齊粱腻、左對齊和居中放置于長度為len的字符串中庇配。char指char類型,即單個字符绍些;可以不傳char捞慌,不傳填充空字符,傳char填充char柬批。
    >>> "Hello world".ljust(20)
    'Hello world         '
    >>> "Hello world".rjust(20)
    '         Hello world'
    >>> "Hello world".center(20)
    '    Hello world     '
    >>> "Hello world".ljust(20,"=")
    'Hello world========='
    >>> "Hello world".rjust(20,"=")
    '=========Hello world'
    >>> "Hello world".center(20,"=")
    '====Hello world====='
    
  • strip()卿闹、rstrip()揭糕、 lstrip()刪除空白字符。返回一個新的字符串锻霎,stip()刪除開頭結(jié)尾的空白字符著角。rstrip()和了lstrip()分別刪除左邊和右邊的空白字符。
    >>> "     Hello world     ".strip()
    'Hello world'
    >>> "     Hello world     ".lstrip()
    'Hello world     '
    >>> "     Hello world     ".rstrip()
    '     Hello world'
    >>> "     Hello world     **".rstrip("*")
    '     Hello world     '
    >>> "     Hello world     **".rstrip("**")
    '     Hello world     '
    >>> "     Hello world     **".rstrip("**8")
    '     Hello world     '
    >>> "     Hello world     **".rstrip("**8**")
    '     Hello world     '
    >>> "     Hello world     **".rstrip("-=")
    '     Hello world     **'
    >>> "     Hello world     **".rstrip("-=*")
    '     Hello world     '
    >>> "     Hello world    = *-*=".rstrip("-=*")
    '     Hello world    = '
    
    

2.5 pyperclip模塊 —— 拷貝粘貼字符串

pyperclip模塊有copy()和paste()函數(shù)旋恼,可以向計算機的剪貼板發(fā)送文本吏口,或從它接收文本。

3. 元組tuple

3.1 概念

除了以下兩點冰更,元組于列表幾乎一樣:

  • 元組輸入時用()产徊,而不是[];
  • 元組是不可變的蜀细。因為不可變舟铜,使用元組比使用列表更快

注意
如果元組只有一個值,可以再括號內(nèi)值的后面跟一個","奠衔,告訴Python這是一個元組

3.2 列表和原子互相轉(zhuǎn)換類型

使用list() 和 tuple()函數(shù)來轉(zhuǎn)換類型

list = [1,2,3,4]
tuple = (1,2,3,4)
listCopy = lis(tuple)
tupleCopy = tuple(list)

4. 字典

“字典”是許多值的集合谆刨。字典的索引被稱為“鍵”,鍵及其關(guān)聯(lián)的值稱為“鍵-值”對归斤。在代碼中痊夭,字典輸入時帶花括號{}。

myCat={'size':'fat','color':'gray','disposition':'loud'}

通過鍵值開訪問這些值:

>>>myCat[color]
gray

4.1 字典的特性

  • 鍵-值對是無序的脏里。

    因此輸入的順序并不重要她我,也無法像列表一樣切片。
  • 嘗試訪問字典中不存在的鍵迫横,將導致KeyError番舆。
  • 可以用任意值做為鍵

4.2 添加一個新的鍵值對

dic[newKey] = newValue

4.3 查找

4.3.1 字典方法:keys()、values()矾踱、items()

有3個字典方法合蔽,返回類似列表的值,keys()返回鍵介返、values()返回值、items()返回鍵-值對沃斤。這些方法返回的值不是真正的列表圣蝎,它們不能被修改,沒有append()方法衡瓶。但這些數(shù)據(jù)類型(分別是dict_keys徘公、dict_values和dict_items)可以用于for循環(huán)。

4.3.2 關(guān)鍵字in

  • 查看某個值是都作為鍵存在于字典中
    birthdays={'Alice':'Apr1','Bob':'Dec12','Carol':'Mar4'} 
    print('Alice' in birthdays)
    
    birthdays={'Alice':'Apr1','Bob':'Dec12','Carol':'Mar4'} 
    print('Alice' in birthdays.key())
    
  • 查看某個值是都作為值存在于字典中
    birthdays={'Alice':'Apr1','Bob':'Dec12','Carol':'Mar4'} 
    print('Dec12' in birthdays.values())
    

4.3.3 get() 方法

get(key,default):獲取key對應的值嗎哮针,如果不存在关面,返回default坦袍。

4.3.4 setdefault() 方法

setdefault('color', 'white')
為某一鍵設置默認值,沒有時使用該默認值

4.4 循環(huán)

myCat = {'color':'red','name':'Kitty','age':'1'}
for k, v in myCat:
    print('Key:' + str(k) + " Value:" + str(v))

5. copy模塊

  • 淺拷貝
import copy
list = [1,4,5,6]
copyList = copy.copy(list)
  • deepcopy

    如果要復制的列表中包含了列表等太,那就使用copy.deepcopy()函數(shù)來代替捂齐。deepcopy()函數(shù)將同時復制它們內(nèi)部的列表。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缩抡,一起剝皮案震驚了整個濱河市奠宜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞻想,老刑警劉巖压真,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蘑险,居然都是意外死亡滴肿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門佃迄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泼差,“玉大人,你說我怎么就攤上這事和屎∷┩裕” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵柴信,是天一觀的道長套啤。 經(jīng)常有香客問我,道長随常,這世上最難降的妖魔是什么潜沦? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮绪氛,結(jié)果婚禮上唆鸡,老公的妹妹穿的比我還像新娘。我一直安慰自己枣察,他們只是感情好争占,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著序目,像睡著了一般臂痕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猿涨,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天握童,我揣著相機與錄音,去河邊找鬼叛赚。 笑死澡绩,一個胖子當著我的面吹牛稽揭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肥卡,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼溪掀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了召调?” 一聲冷哼從身側(cè)響起膨桥,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唠叛,沒想到半個月后只嚣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡艺沼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年册舞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片障般。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡调鲸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挽荡,到底是詐尸還是另有隱情藐石,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布定拟,位于F島的核電站于微,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏青自。R本人自食惡果不足惜株依,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望延窜。 院中可真熱鬧恋腕,春花似錦、人聲如沸逆瑞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽获高。三九已至哈肖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谋减,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工扫沼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留出爹,地道東北人庄吼。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像严就,于是被迫代替她去往敵國和親总寻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)粟害。通常情況下蕴忆,聲明一個變量只保存一個值是遠遠不夠的,我們需要將一組...
    小黑y99閱讀 65,200評論 0 9
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理悲幅,服務發(fā)現(xiàn)套鹅,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • 1. Python 變量類型 變量存儲在內(nèi)存中的值汰具。這就意味著在創(chuàng)建變量時會在內(nèi)存中開辟一個空間卓鹿。基于變量的數(shù)據(jù)類...
    張松貴閱讀 392評論 0 0
  • 《殺不死我的必使我強大》史蒂芬?約瑟夫 塞翁失馬留荔,焉知福禍吟孙。創(chuàng)傷逆境可成長,這是一本寫給心靈遭受過重創(chuàng)的人的書存谎。 ...
    中山艮民閱讀 2,813評論 0 1
  • 【1】 時隔多年既荚,再見到韓涵的時候稚失,是在我的大學校園。那時我教育實習剛剛結(jié)束恰聘,閑著無聊句各,就隨意在學校里瞎轉(zhuǎn)悠。走到...
    貓牌的橡皮閱讀 1,005評論 2 2