有沒有辦法用 的方式寫下面的表達式,我不會重複兩次變量?當你必須多次寫入時,這是非常煩人的 。極小的煩惱與列表理解和迭代器
['hello {} {}'.format(A,B) for A,B in product(As,Bs)]
有沒有辦法用 的方式寫下面的表達式,我不會重複兩次變量?當你必須多次寫入時,這是非常煩人的 。極小的煩惱與列表理解和迭代器
['hello {} {}'.format(A,B) for A,B in product(As,Bs)]
這正是你要做的for
循環,不是嗎?無論如何,你可以使用地圖:
map(lambda x:'hello {} {}'.format(*x), product(As,Bs)]
我意識到現在的參數擴展*x
語法,可能會縮短你做成以上(只有一個變量)寫道。如果你打算申請someFormatString.format(*x)
總是可以縮短這個用函數產生格式化程序:
def mkStr(formatStr):
return lambda x,f=formatStr: f.format(*x)
然後你就可以用
map(mkStr('hello {} {}'), product(As,Bs)]
地圖和不同格式字符串轉換起來。
fwiw我認爲爭取這樣的代碼縮短使得代碼更加清晰和難以推理。請記住[python的禪宗](https://www.python.org/dev/peps/pep-0020/)'顯式比隱式更好。 –