1. 程式人生 > >python-day2

python-day2

數字 com 添加 說明 多個 als 打印 越界 wid

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