Python_面試寶典_數據類型

  1. 字典
    dict字典,字典是一組鍵key和值value的組合,通過鍵進行查找,沒有順序,使用大括號“{}”

  2. 字典和json的區別?
    字典是一種數據結構,json是一種數據表現形式,字典的key值只要是能hash的就行,json的必須是字符串。

  3. 什麼是可變類型、不可變類型?
    可變不可變指的是內存中的值是否可以被改變,不可變類型指的是對象所在內存塊裏面的值不可以改變,有數值、字符串、元組;可變類型則是可以改變,主要有裏列表、字典。

  4. 存入字典的數據有沒有先後順序?
    存入的數據不會進行排序,可以使用sort函數對字典進行排序。

  5. 字典推導式

     d = {key:value for (key, value) in iterable}
    
  6. 請反轉字符串“aStr”

     print('aStr'[::-1])
    
  7. 列表操作

    一,創建列表  只要把逗號分隔的不同的數據項使用方括號([ ])括起來即可 下標(角標,索引)從0開始,最後一個元素的下標可以寫-1
    
    list  =  ['1',‘2,‘3]
    
    list = [] 空列表
    
    二,添加新的元素
    
    list.append()list 末尾增加一個元素
    
    list.insert(n,'4') 在指定位置添加元素,如果指定的下標不存在,那麼就是在末尾添加
    
    list1.extend(list2) 合併兩個list   list2中仍有元素
    
    三,查看列表中的值
    
    print(list)    遍歷列表
    
    等價於    for i in list:
    
                          print i
    
    print(list[n])  使用下標索引來訪問列表中的值,同樣你也可以使用方括號的形式截取字符
    
    print(list.count(xx)) 查看某個元素在這個列表裏的個數,如果改元素不存在,那麼返回0
    
    print(list.index(xx))找到這個元素的小標,如果有多個,返回第一個,如果找一個不存在的元素會報錯
    
    四,刪除list 中的元素
    
    list.pop() 刪最後一個元素
    
    list.pop(n)指定下標,刪除指定的元素,如果刪除一個不存在的元素會報錯
    
    list.remove(xx) 刪除list 裏面的一個元素,有多個相同的元素,刪除第一個 
    
    print(list.pop()) 有返回值
    
    print(list.remove()) 無返回值
    
    del  list[n] 刪除指定下標對應的元素 
    
    del list 刪除整個列表, list刪除後無法訪問
    
    五,排序和反轉
    
    list.reverse()將列表反轉
    
    list.sort()排序,默認升序
    
    list.sort(reverse=True) 降序排列
    
    注:list 中有字符串,數字時不能排序,排序針對同類型
    
    六,列表操作的函數
    
    1len(list):列表元素個數 
    2max(list):返回列表元素最大值 
    3min(list):返回列表元素最小值 
    4list(seq):將元組轉換爲列表
    
    5enumerate 用法(打印元素對應的下標)
    
    同時取下標,元素
    
    
    
    結果如下:
    
    
    
    七,list 循環和切片
    
     1,循環
    
    for i in list:
    
           print i
    
    如果直接for 循環一個list 的時候,那麼每次循環的值都是這個list 裏面的元素
    
    2,切片(list 取值的一種方法)
    
    name[n:m]  切片是不包含後面那個元素的值(顧頭不顧尾)
    
    name[:m] 如果切片前面一個值缺省的話,從開頭開始取
    
    name[n:] 如果切片後面的值缺省的話,取到末尾
    
    name[:] 如果全部缺省,取全部
    
    name[n:m:s] s:步長  隔多少個元素取一次
    
    步長是正數,從左往右取
    
    步長是負數,從右往左取
    
    注:切片同樣適用於字符串,字符串也有下標
    
     八、列表生成式
    
    列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。
    
    實例1:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))list = list(range(1,11))
    
    實例2:生成[1x1, 2x2, 3x3, ..., 10x10]可以用  list = list(x * x for x in range(1,11))
    實例3for循環後面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:list = list(x * x for x in range(1,11) if x%2== 0)
    實例4:使用兩層循環,可以生成全排列:
    list = [m + n for m in 'ABC' for n in 'XYZ']
    print(list)
    輸出結果:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
    實例5for循環其實可以同時使用兩個甚至多個變量,比如dict的items()可以同時迭代key和value:
    法一:
    >>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
    >>> for k, v in d.items():
    ...     print(k, '=', v)
    ...
    y = B
    x = A
    z = C
    法二:
    >>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
    >>> [k + '=' + v for k, v in d.items()]
    ['y=B', 'x=A', 'z=C']
    
    head first Python 總結:
    1,列表是一個有序的對象集合
    2,一個對象在另外一個對象中嗎?用 in 來檢查
    3,從列表中刪除對象 remove
    remove:取一個對象值作爲唯一參數。remove方法會從列表中刪除指定數據值的第一次出現。
    
    如果在列表中找到了這個數據值,就會從列表中刪除包含這個值的對象(同時列表的大小減一)。如果在列表中沒有找到這個數據值,會報錯。
    
    4,從列表中彈出對象 pop
    pop:取一個可選的索引值(indexof)作爲參數。pop方法根據對象的索引值從現有列表刪除和返回一個對象。
    
    如果調用pop時沒有指定索引值,將刪除和返回列表中的最後一個對象。如果指定了一個索引值,則會刪除和返回那個位置上的對象。
    
    如果列表爲空或者調用pop時指定了一個不存在的索引值,會報錯。
    
    5,用對象擴展列表 extend
    extend:取一個對象列表作爲唯一參數。extend方法接收第二個列表,將其中的各個對象增加到現有列表。如果要將兩個列表合併爲一個列表,這個方法就非常有用。
    
    6,在列表中插入一個對象 insert/append
    insert:取一個索引值和一個對象作爲參數。insert 方法將一個對象插入到現有列表中指定索引值的前面。
    
    這樣就可以將對象插入到現有列表的開頭,或者插入到列表中的任何位置。要把對象插入到列表末尾,用append 。用法 num.insert(2,"abc")
    
    7,如何複製一個數據結構?不要使用賦值操作符複製列表;應當使用copy方法。
    賦值操作都指向同一個數據,如果修改一個列表,另一個也會改變;如果想讓另一個變量引用一個現有列表,可以使用賦值操作(=)
    copy:list2 = list1.copy() ;如果想建立現有列表中對象的副本,用他們初始化一個新列表,就一定要使用copy 方法
    
    8,列表切片的使用【start:stop:step】不包含stop 索引值
    step 爲正數時,從左至右;step 爲負數時,從右至左
    
  8. 元組
    tuple元組,元組將多樣的對象集合到一起,不能修改,通過索引進行查找,使用括號“()”

  9. 集合
    set集合,在python中的書寫方式的{},集合與之前的列表、元組類似,可以存儲多個數據,但是這些數據是不重複的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章