最近學的 Python 新寫法
前言
由於 Python 並非我擅長的語言,但因為工作環境時常會需要一些簡短的 Python 程式碼,如 Blender 的 Script ,所以寫法一直沒有進步,容易寫出冗長的程式碼,最近抽空學習了 Python 的新寫法,在此做個紀錄。
內容
瀏覽 List :
ar = [ 'one', 'two', 'three']
#Old style loop
for ele in range( len( ar ) ):
print(ar[ ele ])
#New style loop1
for ele in ar:
print(ele)
#New style loop2
for i, ele in enumerate( ar ):
print( 'i:', i, ' ele:', ele)
舊的寫法很冗長,不但要 range() 還要 len() 搭配才能瀏覽陣列的內容,新的寫法簡單的多,如果有需要 index 變數可以搭配 enumerate() 來瀏覽。
瀏覽 Dictionary :
my_map = {
'a' : 1,
'b' : 2,
'c' : 3
}
#Old style
for key in my_map:
print( 'key:', key , ' value:', my_map[ key ] )
#New style1
for key, value in my_map.items():
print( 'key:', key, ' value:', value)
#New style2
for value in my_map.values():
print( value )
舊的寫法可以視為只取 key 值,然後再從 key 取得 value ,取得 value 時會較冗長,新的寫法透過 Dictionary 的 items() ,如果很確定只需要取 value 的話可以透 Dictionary 的 values() 來取得。
字串:
a = 'string'
b = 1234
#Old style
print( 'a:', a, "b:", b)
#New style
print( f'a:{a} b:{b}' )
舊的寫法會需要很多的',',新的寫法在字串的前方加'f',在字串裡可以透過"{}"來取得變數,整體看起來非常直覺與簡短。
沒有留言:
張貼留言