我是新來編程,並試圖從申請到學習。我有Python中的函數:名單列表(與範圍的用法)
def eps(u):
return as_vector([u[i].dx(i) for i in range(3)] + [u[i].dx(j) + u[j].dx(i) for i, j in [(0, 1), (0, 2), (1, 2)]])
據我所知,在上面的函數,語句i in range(3)
是要運行u[0].dx(0)....u[2].dx(2)
一個循環,但我不明白的for i, j in [(0, 1), (0, 2), (1, 2)]])
部分。這整個陳述將如何執行?有人可以請。說明。
同樣我有:
def tangent(t):
return as_matrix([[t[i*6 + j] for j in range(6)] for i in range(6)])
相信表達t[i*6 + j]
將運行6倍,對於i = 0:5和用於 'i' 的每個值,我們將有 'J = 0:5'。因此,我會得到一個6x6矩陣。那是對的嗎?
這可以幫助HTTP: //stackoverflow.com/questions/4406389/if-else-in-a-list-comprehension – ShadowMitia