1. 程式人生 > >day 07 元組,字典和集合等資料型別介紹

day 07 元組,字典和集合等資料型別介紹

元組:就是一個不可變的列表

1.用途,當我們需要記錄多個值,並且沒有更改的需求的時候,應該使用元組

2定義方式:使用,在 ( ) 中分隔開多個任意型別的值

注:t=("egg",),如當列表中只有一個值的時候,在末尾加上 , 逗號

t=tuple("hello")  # 元組和列表的型別的型別轉換相同,可將任意可迭代型別轉換成 元組型別

常用操作+內建方法

1.按照索引取值,因為元組是不可變型別,所以只能取值

.count()  統計某個元素出現的次數

.index()  計算出某個元素出現的位置的索引值

總結:元組是不可變型別

 

字典:記錄多個不同屬性的值

定義方式:在{} 內使用逗號分隔開多個元素,每個元素都是key:value的形式,其中value可以是任意型別,但是key只能是不可變型別

資料型別轉換

l1=(["name","haha"],["age","18"],("gender","male"))

dic=dict(l1)    # 可以直接將l1 轉換成一個字典

dic1=dict(x=1,y=2,z=3)  # 也可以直接將括號內的內容轉換成字典

常用操作+方法

1按key取值:可存可取

dic={'name': '哈哈', 'age': 18, 'gender': 'male'}

dic["name"]            #取出元素對應的值,如果指定的key,在字典中不存在則報錯

dic["name"]="xixi"   #如果key對應的值存在,則修改字典中的已存在鍵值對,如果不存在,則新增,新的鍵值對

2len

計算出字典中存在的鍵值對的數量

3in和not in 判斷得是字典的key

4刪除

del dic["name"]   #

t=dic.popitem()   #隨機彈出一個鍵值對,返回值是一個鍵值對的元組

t=dic.pop("name")  # 通過給定的key,彈出一個元素,返回值是key對應的value

5鍵keys(), 值values(),鍵值對items()

dic.keys()     #取出字典的所有的key的值,在python2中直接返回一個列表,在python3 不是直接返回列表,可以通過for迴圈取出

dic.values()  #取出字典的所有的value值

dic.items()  #取出字典中所有的鍵值對,一個鍵值對儲存在一個元組中

5. get取值

get() 取值,如果key在字典中,則返回key對應的value.如果key不存在,不會報錯,返回一個None

需要掌握的操作

dic.formkey(iter,char)

通過第一個引數給定的可迭代物件,作為key,第二個引數作為預設值,快速的構造一個字典

方法需要通過使用字典呼叫{} 不會改變呼叫字典,返回一個構造完成的字典,所以呼叫字典的狀態並不會影響呼叫方法的結果

dic.updata

使用updata()中給定的字典更新呼叫的字典,如果key已經存在則使用引數中的key對應的value值,更新源字典,如果key不存在,則新增

dic.setdefault(key,value)  # 執行完畢後的結果時保證字典中有 這個值存在

引數是key和value 如果呼叫字典中不存在key,則將引數中的key,value新增到字典中,返回值,是引數中的vlaue值

        如果呼叫字典中key,已經存在,則不做任何操作,直接將key對應的value返回

 

集合set

用途:

  做關係運算

  去重

定義方式:在{} 中使用,逗號分隔開多個值,多個元素必須滿足以下要求

  每一個元素必須是不可變型別

  集合內的元素不能重複

  集合無序

注意: d={} 預設d是字典型別, d=set{}  則d是集合型別

常用操作+內建的方法

關係運算

pythons={'李鐵蛋','張全蛋','王銅蛋','趙銀蛋','oldboy','艾利克斯'}
linuxs={'kevin','egon','tank','艾利克斯','王銅蛋'}

求即報名python課時又報名linux課程的學員:交集

python & linuxs  返回值是一個字典型別

pythons.intersection(linuxs)

求所有的學員姓名:並集

pythons | linuxs

python.union(linuxs)

求只報名python課程的學員:差集

pythons-linuxs

python.difference(linuxs)

求沒有同時報名兩門課程的學員:對稱差集

python^linuxs

pythons.symmetric_differcnce(linuxs)

父集/子集 :包含和被包含的關係

只有一個集合中的元素包含另一個集合中的全部元素的時候,才會有子集和父集的概率

set1={1,2,3}

set2={1,2}

set1>=set2   # True

set1.issuperset(set2)  # True

掌握的操作

set1.update({2,3,4})    #使用引數中的集合更新源集合

set1.add(1)    #新增一個值

set1.pop() 隨機彈出一個值

set1.remove(2)  彈出2這個值

set1.difference_update(set2) 將set1和set2做差集操作後的結果,給賦值給set1

set.discard()  # 如果給定的引數是集合中的一個成員則把他刪除,如果不是則什麼也不做,無返回值

 

在條件判斷中所有的資料都會轉換成布林值

只需記住布林值為假的資料型別即可,0,None,空