天池龍珠計畫Python訓練營 第五天

2021-10-09 07:51:16 字數 3739 閱讀 1499

有幸參加了阿里雲舉辦的天池龍珠計畫python訓練營。收穫頗多。

每天記錄一些自己之前的知識盲點,需經常溫習。

一、字串

1、字串轉換:

#maketrans(intab, outtab) 建立字元對映的轉換表,第乙個引數是字串,表示需要轉換的字元,第二個引數也是字串表示轉換的目標。

#translate(table, deletechars="") 根據引數table給出的表,轉換字串的字元,要過濾掉的字元放到deletechars引數中。

【例子】

str7 = 'this is string example....wow!!!'

intab = 'aeiou'

outtab = '12345'

trantab = str7.maketrans(intab, outtab)

print(trantab) #

print(str7.translate(trantab)) # th3s 3s str3ng 2x1mpl2....w4w!!!

二、字典

1、可變型別和不可變型別:

序列是以連續的整數為索引,與此不同的是,字典以"關鍵字"為索引,關鍵字可以是任意不可變型別,通常用字串或數值。

字典是 python 唯一的乙個 對映型別,字串、元組、列表屬於序列型別。

那麼如何快速判斷乙個資料型別 x 是不是可變型別的呢?兩種方法:

麻煩方法:用 id(x) 函式,對 x 進行某種操作,比較操作前後的 id,如果不一樣,則 x 不可變,如果一樣,則 x 可變。

便捷方法:用 hash(x),只要不報錯,證明 x 可被雜湊,即不可變,反過來不可被雜湊,即可變。

【例子】

i = 1

print(id(i)) # 140732167000896

i = i + 2

print(id(i)) # 140732167000960

l = [1, 2]

print(id(l)) # 4300825160

print(id(l)) # 4300825160

整數 i 在加 1 之後的 id 和之前不一樣,因此加完之後的這個 i (雖然名字沒變),但不是加之前的那個 i 了,因此整數是不可變型別。

列表 l 在附加 'python' 之後的 id 和之前一樣,因此列表是可變型別。

【例子】

print(hash('name')) # 7047218704141848153

print(hash((1, 2, 'python'))) # 1704535747474881831

print(hash([1, 2, 'python']))

# typeerror: unhashable type: 'list'

print(hash())

# typeerror: unhashable type: 'set'

數值、字元和元組 都能被雜湊,因此它們是不可變型別。

列表、集合、字典不能被雜湊,因此它是可變型別。

2、建立和訪問字典:

【例子】

​#dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. for example: dict(one=1, two=2)

【例子】這種情況下,鍵只能為字串型別,並且建立的時候字串不能加引號,加上就會直接報語法錯誤。

dic = dict(name='tom', age=10)

print(dic) #

print(type(dic)) #

3、字典的內建方法

#dict.fromkeys(seq[, value]) 用於建立乙個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。

【例子】

seq = ('name', 'age', '***')

dic1 = dict.fromkeys(seq)

print(dic1)# ​

dic2 = dict.fromkeys(seq, 10)

print(dic2)# ​

dic3 = dict.fromkeys(seq, ('小馬', '8', '男'))

print(dic3)

# #dict.get(key, default=none) 返回指定鍵的值,如果值不在字典中返回預設值。

【例子】

dic =

print("age 值為 : %s" % dic.get('age')) # age 值為 : 27

print("*** 值為 : %s" % dic.get('***', "na")) # *** 值為 : na

print(dic) #

#dict.setdefault(key, default=none)和get()方法 類似, 如果鍵不存在於字典中,將會新增鍵並將值設為預設值。

【例子】

dic =

print("age 鍵的值為 : %s" % dic.setdefault('age', none)) # age 鍵的值為 : 7

print("*** 鍵的值為 : %s" % dic.setdefault('***', none)) # *** 鍵的值為 : none

print(dic)

# #dict.pop(key[,default])刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key 值必須給出。若key不存在,則返回 default 值。

del dict[key] 刪除字典給定鍵 key 所對應的值。

【例子】

dic1 =

print(dic1.pop(1), dic1) # a

​# 設定預設值,必須新增,否則報錯

print(dic1.pop(3, "nokey"), dic1) # nokey

​del dic1[2]

print(dic1) # {}

#dict.copy()返回乙個字典的淺複製。

【例子】

dic1 =

dic2 = dic1.copy()

print("dic2")

# #【例子】直接賦值和 copy 的區別

dic1 =

​# 引用物件

dic2 = dic1

# 淺拷貝父物件(一級目錄),子物件(二級目錄)不拷貝,還是引用

dic3 = dic1.copy()

​print(id(dic1)) # 148635574728

print(id(dic2)) # 148635574728

print(id(dic3)) # 148635574344

​# 修改 data 資料

dic1['user'] = 'root'

dic1['num'].remove(1)

​# 輸出結果

print(dic1) #

print(dic2) #

print(dic3) #

#dict.update(dict2)把字典引數 dict2 的 key:value對 更新到字典 dict 裡。

【例子】

dic =

dic2 =

dic.update(dic2)

print(dic)

#

天池龍珠計畫Python訓練營 第六天

有幸參加了阿里雲舉辦的天池龍珠計畫python訓練營。收穫頗多。每天記錄一些自己之前的知識盲點,需經常溫習。一 集合 1 集合的建立 在建立空集合的時候只能使用s set 因為s 建立的是空字典。例子 basket set basket.add banana num print type num n...

天池龍珠計畫Python訓練營 第一天

有幸參加了阿里雲舉辦的天池龍珠計畫python訓練營。收穫頗多。每天記錄一些自己之前的知識盲點,需經常溫習。一 運算子 例子 比較的兩個變數均指向不可變型別。對於字串來說 a hello b hello print a is b,a b true true print a is not b,a b ...

龍珠計畫Python訓練營筆記 day10

美國 練習 按州總捐款熱力地圖 參賽選手自由發揮 補充 第乙個補充熱力地圖的參賽選手可以獲得天池杯子乙個 呼叫相關包 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns 設定畫布大小 f,ax plt.s...