2 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
這兩行是 Python列表推導(dǎo)式的典型示例。
本質(zhì)上,對(duì)于您的第一個(gè)列表:
nabla_b = [nb+dnb for nb, dnb in zip(nabla_b, delta_nabla_b)]
這意味著:
取第一對(duì)
zip(nabla_b, delta_nabla_b)
;命名它們nb
并dnb
添加它們 (
nb+dnb
)使結(jié)果成為新列表的第一個(gè)元素
nabla_b
轉(zhuǎn)到第 2 對(duì)等的第一步,將結(jié)果附加到
nabla_b
,直到所有對(duì)zip(nabla_b, delta_nabla_b)
都用完
作為一個(gè)簡(jiǎn)單的例子,下面的列表推導(dǎo)式:
squares = [x**2 for x in range(10)]
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
等效于以下for循環(huán):
squares = []
for x in range(10):
squares.append(x**2)
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
有關(guān)更多示例和快速介紹,請(qǐng)參見此處。

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
該zip函數(shù)將兩個(gè)列表逐個(gè)元素地粘在一起,這樣如果你給它:
a = [1, 2, 3, 4]
b = ["a", "b", "c", "d"]
zip(a, b) 會(huì)返回:
[(1, "a"), (2, "b"), ...]
(每個(gè)元素都是一個(gè)tuple)
您可以使用元素中每個(gè)變量之間的逗號(hào)來解包lists 的tuples(或lists)元素tuple:
for elem_a, elem_b in zip(a, b):
print(elem_a, elem_b)
這將打?。?/p>
1 a
2 b
3 c
4 d
因此,在您的情況下,它將兩個(gè)列表nabla_b和delta_nabla_b元素相加,因此您會(huì)得到一個(gè)列表,其中每個(gè)元素都是壓縮列表中相應(yīng)元素的總和。
它可能看起來有點(diǎn)奇怪,因?yàn)閒or循環(huán)都在一行上,但這被稱為“列表理解”。簡(jiǎn)單的列表推導(dǎo)讀起來像英語。
添加回答
舉報(bào)