python-day2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#-*-coding:utf-8-*-
#1、字典
dict = { ‘name‘ : ‘Zara‘ , ‘age‘ : 7 , ‘class‘ : ‘First‘ }
#字典轉為字符串,返回:<type ‘str‘> {‘age‘: 7, ‘name‘: ‘Zara‘, ‘class‘: ‘First‘}
print type ( str ( dict )), str ( dict )
#字典可以轉為元組,返回:(‘age‘, ‘name‘, ‘class‘) print tuple ( dict )
#字典可以轉為元組,返回:(7, ‘Zara‘, ‘First‘)
print tuple ( dict .values())
#字典轉為列表,返回:[‘age‘, ‘name‘, ‘class‘]
print list ( dict )
#字典轉為列表
print dict .values
#2、元組
tup = ( 1 , 2 , 3 , 4 , 5 )
#元組轉為字符串,返回:(1, 2, 3, 4, 5)
print tup.__str__()
#元組轉為列表,返回:[1, 2, 3, 4, 5]
print list (tup)
#元組不可以轉為字典
#3、列表
nums = [ 1 , 3 , 5 , 7 , 8 , 13 , 20 ];
#列表轉為字符串,返回:[1, 3, 5, 7, 8, 13, 20]
print str (nums)
#列表轉為元組,返回:(1, 3, 5, 7, 8, 13, 20)
print tuple (nums)
#列表不可以轉為字典
#4、字符串
#字符串轉為元組,返回:(1, 2, 3)
print tuple ( eval ( "(1,2,3)" ))
#字符串轉為列表,返回:[1, 2, 3]
print list ( eval ( "(1,2,3)" ))
#字符串轉為字典,返回:<type ‘dict‘>
print type ( eval ( "{‘name‘:‘ljq‘, ‘age‘:24}" ))
|
一、元組(tuple)
1.特性:不可更改的數據序列。【理解:一旦創建元組,則這個元組就不能被修改,即不能對元組進行更新、增加、刪除操作】
2.創建:一對圓括號“()”和其包含的元素(若沒有元素,則為空元組)。
創建一般元組:即一維元組。如:tempTuple = ("one","two","three",4,5,6)。
創建嵌套元組:元組中還可以包含元組,即嵌套元組或二維(多維)元組。如:mulTuple = (("you","are","a","dog"),"you","too")。
註:若想創建包含一個元素的元組,則必須在該元素後面加逗號“,”,否則創建的不是一個元組,而是一個字符串。
如:aTuple = ("one",),aString = ("one")。type(aTuple) -> "tuple",type(aString) ->"string"。
3.訪問:元組名[index],index為元素在元組中的索引,索引為整數,從0開始。註意:index不能越界,否則會報錯。
訪問一般元組:tempTuple[0] -> "one",tempTuple[3] -> 4。
訪問嵌套元組:mulTuple[0][1] ->"are"。
註:可以使用負數作為索引來訪問元組。-1代表最後一個元素,-2代表倒數第二個,以此類推。如:tempTuple[-1] ->"too"。
可用for循環遍歷元組。如:for element in tempTuple: print(elment)。
4.求長:len(元組名)。如len(tempTuple) ->6。(長度也即元組中元素的個數)。
5.打印:print(元組名),可打印元組中的所有元素。
6.類型:type(元組名) ->"tuple"。
7.刪除:del 元組名,刪除元組,當訪問被刪除的元組時會報錯,提示:元組未定義。(其他類型也可以用此方法)
二、列表(list)
1.特性:可更改的數據數列。(區別於元組,可動態增加,刪除,更新)
2.創建:一對方括號“[]”和其包含的元素,單個元素可以不加逗號,同元組一樣,可以創建嵌套列表。如:tempList = ["one","two","three"]。
3.基本操作及方法:
(1)訪問、遍歷、求長、打印、類型等操作同元組
(2)更新:給列表中的元素重新賦值,不可給列表中不存在的元素賦值。如:tempList[2] = 3 ->tempList = ["one","two",3],tempList[3] = "four" ->報錯!!!
(3)刪除:刪除元素後(若不是最後一個),右邊的元素會左移。
1)del:刪除指定元素。如:del tempList[0] ->tempList = ["two","three"]
2)pop:刪除指定位置的元素並返回被刪除的元素,默認刪除最後一個。如:element = tempList.pop(1) ->element = two,tempList = ["one","three"]。
(4)增加(插入):
1)append:向列表末尾添加一個元素,參數不能為空,否則報錯。如:tempList.append("four") ->tempList = ["one","two","three","four"]。
2)extend:向列表末尾添加多個元素,參數不能為空,不能是int型,可為字符串(當成列表處理,每個字符就是一個元素)、元組、列表。如:
參數為字符串:tempList.extend("str") ->tempList = ["one","two","three","s","t","r"]。
參數為元組或列表:tempList.extend(("four",“five”)) ->tempList = ["one","two","three","four",“five”]。
3)list[index:index] = [value]:向列表list指定的位置index插入一個元素。如:tempList[1:1] = ["add"] -> tempList = ["one","add","two","three"].
註:更一般的形式:listname[start:end] = 元組/列表/字符串,可插入多個元素.
4.高級操作及方法:
(1)產生一個數值遞增列表:
1)pList = range(N),產生一個元素值為0~N-1的列表。如:pList = range(10) ->pList = [0,1,2,3,...,9]。
2)pList = range(sn,en),產生一個元素值為sn~en-1的列表。如:pList = range(1,5) ->pList = [1,2,3,4]。
3)pList = range(sn,en,inc),產生一個元素值以inc遞增的列表。如:pList = range(1,10,2) ->pList = [1,3,5,7,9]
(2)固定值初始化:pList = [value for index in range(N)],產生一個長度為N的列表,元素值都為value.
如:value = "x",N=10,則pLsit = ["x","x",...,"x"]
更簡單的形式:pList = [value]*N。
(3)操作符:
1)"+":兩個列表相加,將合成為一個列表。如 pL1 = [1,2],pL2 = [3,4],pL1+pL2 ->[1,2,3,4]
2)"*":形式:[value]*N。如value="a",N=4,則得到列表["a","a","a","a"]。
3)del:del pL[index]:刪除指定位置的元素。 del pL[sIndex:eIndex]:刪除sIndex~eIndex-1位置的元素。
(4)列表復制:
1)pL1 = pL:pL1為pL的別名,即pL1和pL實質為同一個列表,修改其中一個列表,另一個列表也隨之變化。
如:pL = [1,2,3],pL1 = pL,pL1[2] = 33,->pL = pL1 = [1,2,33]
2)pL2 = pL[:]:pL2為pL的一個克隆(或拷貝),即pL2和pL為不同的列表,修改其中一個列表,另一個不會受影響。
(5)常用方法:
1)L.append(value):向列表末尾插入一個元素
2)L.insert(index,value):向列表的index位置插入一個元素value。
3)L.pop(index): 從列表中刪除指定位置index的元素並返回元素值,默認刪除最後一個元素。
4)L.remove(value):刪除在列表中第一次出現的元素value。如:pList = [1,2,3,2],pList.remove(2) ->pList = [1,3,2]。
5)L.count(value):返回元素value在列表中出現的次數。
6)L.index(value) :該元素第一次出現的的位置,無則拋異常 。
7)L.extend(list/tuple/string) :向列表末尾插入多個元素。
8)L.sort():排序
9)L.reverse():倒序
三、字典(dictionary)
1.特性:以名稱索引的分組數據。元組和列表以數字順序索引,而字典的索引可以數字,字母,字符串,符號等。
在字典中,索引叫做:鍵,即key,對應的值叫做值,即value。
2.創建:dic = {key1:value1,key2:value2},可先創建空字典dic ={},然後再初始化,如dic["one"] = "firstValue"。
註:鍵是唯一的,字典只認最後一個賦的鍵值。如:dic = {1:1,2:2,1:3} ->dic = {1:3,2:2},最後一個元素(1:3)被“舍棄”。
3.訪問:dic[key],獲得key對應的值,若key不存在,則報錯。
4.常用方法和操作:
1)D.get(key, defualtValue):獲得key對應的值,若key不存在,則返回設置的默認值defualtValue,若沒有設置默認值則返回None。
2)D.has_key(key) :檢查字典中是否存在鍵key,有該鍵返回TRUE,否則FALSE。
3)D.keys():返回由字典所有鍵構成的列表。
4)D.values():返回由字典所有值構成的列表。
5)D.items():返回由字典所有鍵值對構成的列表,即[(key1,value1),(key2,value2),(key3,value3),...]。
6)D.update(dic2):將字典dic2中的元素合並到字典D中。
7)D.popitem():隨機刪除字典中的一個鍵值對(一項),並返回值。若字典為空則拋出異常。
8)D.clear():清空字典中的元素並返回None
9)D.pop(key):刪除指定鍵所對應的項,並返回key對應的值。key不能為空,也不默認刪除排在最後的元素,因為字典是無序的,註意和列表的區別!!!
10)D.copy():拷貝字典,兩個字典不是同一個字典。如d = {1:1,2:2},d1 = d.copy() ->d1 = {1:1,2:2}。
11)cmp(dict1,dict2):比較字典,(優先級為元素個數、鍵大小、鍵值大小),第一個大則返回1,第一個小則返回-1,一樣大則返回0。
四、字符串(string)
1.特性:不能修改的字符序列。除了不能修改,可把字符串當成列表一樣處理。
2.訪問:訪問字符串中某個字符同訪問元組或列表中的元素是一樣的,專業術語叫“分片(slicing)”。如:str = "aString",str[0] = "a",str[1] = "S"。
這裏不做深入討論字符串,把字符串放在這裏主要是為了說明字符串具備列表的一些特點。
五、集合(set)
1.特性:與字典類似,但只包含鍵,而沒有對應的值,包含的數據不重復。
2.創建:s = set(list or tuple or string)。重復的值在集合中只存在一個。如:
列表list:s = set([1,2,3,3]) ->s = set([1,2,3])
元組tuple:s = set((1,2,3)) ->s = set([1,2,3])
字符串string:s = set("abc") ->s = set(["a","b","c"])
python-day2