- 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)義字符
輸出為:That's a catprint(r'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)部的列表。