python3的使用技巧

2021-10-08 08:00:14 字數 3148 閱讀 5386

字典合併:

d1 =

d2 =

d3 =

d1.updatr(d2)

d1.updatr(d3)

python3.5以上:生成新的字典

d1 =

d2 =

d3 =

也可以快速的生成字典

字典訪問:

d =d[『name』]

d.get(『name』)訪問name對應的value

c= d.get(『nam』,『unknow』) 當訪問不存在的key,會自定義key

d_new = defaultdict(lambda:『missing』,d)

d_new[『nam』]

for迴圈:

a = [1,2,3]

for item in a:

print(item)

dir(a)有哪些方法

for真正呼叫的是_iter__方法,有__iter__方法就可以for迴圈

yield:

a =range(100)

存放在記憶體裡,生成的是list

python3.6以上

b = range(10000)

type(b) // class 'range』就是乙個生成器一次性讀取就會占用很大的記憶體,通過for迴圈來讀取

yeild生成器裡面的元素只能會被遍歷一次,效率高,一次性生成會使記憶體吃力

while s<=0:

yield s

s+=i

如何在遞迴呼叫中使用yeild

python3引入新的方法 yeild from get_file(full_path)

lambda使用:

lambda表示式需要函式但是又不想定義函式就用lambda,匿名函式

g = lambda x: x+1

g(1)

g1 = lambda x,y:x+2*y

find(filter_func=lambda x:true if x%2==0 else false)

內建方法傳入的引數可以是lambda

data.sort(key=lambda x:x.lower())

處理異常:

try…except捕獲

raise手動觸發異常

import sys

from os import path

from statistics as stats

from statistics import median,mean,mode

不建議使用import *

source env 啟用虛擬環境

pip list

pip install 三方包

進入專案目錄執行 virtualenv --python=python3.6 evn

clear

deactivate

pip freeze

pip install -r require.txt 相當於安裝多個依賴的配置檔案

類屬性不需要例項化就可以方法,類的例項屬性必須例項化後才能呼叫

乙個下劃線的類的例項屬性a._protect_var = 2受保護屬性,提醒使用者不要修改,要修改還是能修改

雙下劃線的類的例項屬性a.__age,會提示沒有這個age,是私有屬性,外界不能訪問,屬性就會重新命名:a._a__age,在內部可以訪問

@property裝飾器,b =b('demo',23),

b.name 加了property可以直接訪問,只能訪問不能修改

@property

def name(self):

return self.name

@age.setter

def age(self,value):

self.age = value

@setter裝飾器可以對屬性進行修改

b = 1,2,3 # 列印出來就是元組

c = 1, #元組

x,y,_ = b

enumerate(a)是個元組

將list轉換為元組可以用:enumerate

a = [1,2,3,4]

for item in enumerate(a):

print(item) #組成元組

x=1 y=1

x,y=y,x 交換x=2,y=1

nametuple使用nametuple可以格式化元組方便維護,提高程式的可讀性

import collections

student = collections.nametuple('student', 'id,name,score')

students = [student(1, 'abc', 90), student(2, 'c', 50), student(3, 'df', 80)]

for s in students:

print(s.id,s.name)

字典:dict

b= dict(ab=1,cd=2)

x = [('a',1),('b',2)] 可迭代的物件

c2=dict(x)

x=[1,2,3,4]

y=['a','b','c','d']

for i in zip(y,x):

print(i)

zip組合成元組

dict(zip(y,x)) 組合成字典

字典:dict

b= dict(ab=1,cd=2)

x = [('a',1),('b',2)] 可迭代的物件

c2=dict(x)

x=[1,2,3,4]

y=['a','b','c','d']

for i in zip(y,x):

print(i)

zip組合成元組

dict(zip(y,x)) 組合成字典

d =d.items()#dict_items([('a',1)])

d.items().sort(key =lambda x:x[1])

按照字典的value進行排序

dict(sorted(d.items(),key=lambda x:x[1],reverse =true))

按照字典的key進行排序

dict(sorted(d.items(), key = lambda x: x[0], reverse = true) )

python3使用 python3使用模組

python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...

Python3 語法小技巧

python現在應用領域越來越廣泛,在寫的同時,養成良好習慣記錄是非常有意義的,大家都知道python入門容易精通很難,今天分享一下有意思的 0x01 想必我們經常有用到過陣列,但這樣的資料結構一定涉及到排序,取最大值,取最小值,下面就是乙個小栗子 import heapq nums 10,22,4...

python 元組使用 Python3

python3 元組 python 的元組與列表類似,不同之處在於元組的元素不能修改。元組使用小括號 列表使用方括號 元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。例項 python 3.0 tup1 google runoob 1997,2000 tup2 1,2,3,4,5 tup...