優雅的使用python

2021-08-11 01:47:53 字數 2767 閱讀 6978

優雅的使用python,讓自己的code更pythonic

test_list = ['龍母','雪諾','提里昂','山姆']

count = 0

for name in test_list:

print('%s的序號是: %d' %(name, count))

count += 1

龍母的序號是: 0

雪諾的序號是: 1

提里昂的序號是: 2

山姆的序號是: 3

test_list = ['龍母','雪諾','提里%s
龍母的序號是: 0

雪諾的序號是: 1

提里昂的序號是: 2

山姆的序號是: 3

通過上面兩個例子可以看到,在對list進行遍歷的時候,使用enumerate可以直接獲得對應值的索引,不需要再定義變數count進行計數

list1 = ['羅柏','薩莎','艾莉亞','布蘭','雪諾']

list2 = ['灰風','淑女','娜梅利亞','夏天','白靈']

for stake,wolf in zip(list1,list2):

print("%s的小狼叫做%s" %(stake, wolf))

羅柏的小狼叫做灰風

薩莎的小狼叫做淑女

艾莉亞的小狼叫做娜梅利亞

布蘭的小狼叫做夏天

雪諾的小狼叫做白靈

不僅對兩個list可以哦,對三個list也同樣是有效的

list1 = ['羅柏','薩莎','艾莉亞','布蘭','雪諾']

list2 = ['灰風','淑女','娜梅利亞','夏天','白靈']

list3 = ['消逝','消逝','改變','消逝','啥也不知道']

for stake,wolf,state in zip(list1,list2,list3):

print("%s的小狼%s現在已經%s" %(stake, wolf,state))

羅柏的小狼灰風現在已經消逝

薩莎的小狼淑女現在已經消逝

艾莉亞的小狼娜梅利亞現在已經改變

布蘭的小狼夏天現在已經消逝

雪諾的小狼白靈現在已經啥也不知道

有了zip你就不再需要傻傻的使用不那麼簡潔的方式進行遍歷了

x = 1

y = 2

defswap

(a,b):

print('before swap a is %d, b is %d' % (a, b))

temp = a

a = b

b = temp

print('after swap a is %d, b is %d' % (a, b))

swap(x,y)

before swap a is 1, b is 2

after swap a is 2, b is 1

x = 1

b = 2

defswap

(a,b):

print('before swap a is %d, b is %d' % (a, b))

a,b = b,a

print('after swap a is %d, b is %d' % (a, b))

swap(x,y)

before swap a is 1, b is 2

after swap a is 2, b is 1

這個trick更像是一條賦值語句,可以看成是對變數的重新賦值,同zip一樣,這個trick對多個變數也同樣適用

x,y,z = 1,2,3

print("before swap x=%d,y=%d,z=%d" %(x,y,z))

x,y,z = z,x,y

print("after swap x=%d,y=%d,z=%d" %(x,y,z))

before swap x=1,y=2,z=3

after swap x=3,y=1,z=2

一般的實現方式

statke_house = 

if'瑞肯'

in statke_house:

statke_house['瑞肯'] = '毛毛狗'

print('導演能不能給我加點戲~')

else:

print('存在感還能再低一點麼~')

存在感還能再低一點麼~
簡潔的實現方式

statke_house = 

result = statke_house.get('瑞肯', '我果然是撿來的')

print('瑞肯的內心: {}' .format(result))

瑞肯的內心: 我果然是撿來的
這個tip只不過是用了dictionary.get()的乙個default賦值引數,所以類似像這樣的小東東在python還有很多

如何把python用的更優雅,讓code更易讀,需要不斷的探索啊^.^

—————————————— 二更分割線 —————————————

python多執行緒的優雅使用

筆者作為一名python職業玩家,仔細研究了下python多執行緒的使用方法,記錄下學習的過程 python中的threading模組是專門用來處理多執行緒併發的情況,廢話少說,直接上 import threading class mythread threading.thread def init...

優雅的使用 Python 協程

協程 coroutine 是由程式設計師在 中顯示排程的。程序和執行緒是由作業系統排程,執行緒是作業系統排程的最小單位 看過前邊的文章應該知道,執行緒任務在 io 阻塞之後,作業系統會進行執行緒切換,這個切換會浪費時間與資源。而協程是在單個執行緒中併發的多個任務,當執行中的協程任務遇到阻塞之後,立即...

優雅的使用Python之軟體管理

方法一 lpython get pip.py d python33 python get pip.py downloading unpacking pip downloading unpacking setuptools installing collected packages pip,setup...