我遇到了這段代碼,我知道它是一個笛卡兒積,但是如果有人能從下面的代碼中爲我分解這一行[s+t for s in a for t in b]
以及這種語法的文檔鏈接。用於在循環中生成字典的Python
顯然這for in
語法與s+t
???對我來說是陌生的,我也是python的新手。欣賞文檔鏈接,所以我可以更多地瞭解這種語法,因爲我試圖理解的循環中還有其他變體。
rows = 'ABCDEFGHI'
cols = '123456789'
def cross(a, b):
return [s+t for s in a for t in b]
def main():
print(cross(rows, cols))
if __name__ == "__main__": main()
輸出是完全相同的,但它們不一樣(是迂腐)。 –
當然,例如可能會有一些小的性能差異:https://stackoverflow.com/questions/22108488/are-list-comprehensions-and-functional-functions-faster-than-for-loops – perigon
我其實剛讀完那個帖子確認我沒有說出我的屁股。 –