Q
迭代的輸出是什麼
-2
A
回答
1
讓做一步一步來:
1) 你有一個列表理解,看起來像這樣:
[ 2 ∗ [ k ] for k in range (3) ]
這真的只是意味着:
創建:2 * [k]
爲每個項目k
在range(3)
這僅僅是一個喜歡對象列表,它包含整數從0-3
(不包括3,包括0)。 2*[k]
是說繁殖只由k
2列表,以便2*[1] == [1,1]
所以,print([ 2 ∗ [ k ] for k in range (3) ])
會給你:
>>> print([2*[k] for k in range(3)])
[[0, 0], [1, 1], [2, 2]]
2),那麼你只是子腳本與l[2][1]
列出這意味着get the item at index 1 from the item at index 2
(即,一個雙列表的切片)。這是有效的,因爲你從上面嵌套了列表。
因此,如果此子列表爲2
,則列表中索引2處的項目爲[2,2]
,索引1處的項目爲2
。
因此:
>>> print ([ 2 * [ k ] for k in range (3) ] [ 2 ] [ 1 ])
2
0
讓我們從基礎開始。你有
[2 * [k] for k in range(3)]
== [2*[0], 2*[1], 2*[2]]
== [[0,0], [1,1], [2,2]]
和
[[0,0],[1,1],[2,2]] [2] = [2,2]
和
[2,2][1] = 2
所以
print([ 2 ∗ [k] for k in range(3) ][ 2 ][ 1 ])
輸出(當你解決這個星號是爲Python解析合適的字符):
2
如果這一切對你來說看起來像是黑魔法,你可能想嘗試看看here更多的列表解析。
相關問題
- 1. 輸入和輸出迭代器的需求是什麼?
- 2. 在Swift中通過數組迭代時,輸出「VSs5Range」是什麼?
- 3. 什麼是迭代在Java
- 4. 什麼是迭代器,C++?
- 5. 什麼是SCARY迭代器?
- 6. 如果「輸出」值與迭代的值不同,前奏的迭代的替代方法是什麼?
- 7. 這段代碼的輸出是什麼
- 8. 以下代碼的輸出是什麼?
- 9. 以下代碼的輸出是什麼?
- 10. 這些代碼的輸出是什麼?
- 11. 以下代碼的輸出是什麼?
- 12. map-reduce代碼的輸出是什麼?
- 13. 這段代碼的輸出是什麼?
- 14. 以下代碼的輸出是什麼?
- 15. 輸入迭代器+輸出迭代器+ X =前向迭代器
- 16. 僞代碼輸出是什麼?
- 17. 對輸出的迭代
- 18. 迭代有趣的輸出
- 19. 輸出迭代器的VALUE_TYPE
- 20. 什麼是輸出?
- 21. 正向迭代器是輸出迭代器嗎?
- 22. python迭代器的接口是什麼?
- 23. NSSet的迭代順序是什麼?
- 24. 爲什麼異常是可迭代的?
- 25. 這是什麼樣的迭代?
- 26. 以下JavaScript代碼的輸出是什麼?爲什麼?
- 27. 以下代碼的輸出是什麼?爲什麼?
- 28. c中以下代碼的輸出是什麼?爲什麼?
- 29. 這段代碼的輸出是什麼,爲什麼?
- 30. 這段代碼段的輸出結果是什麼?爲什麼?
似乎有一些語法錯誤 –
'*'字符不是通常的'*'字符。只是改變這一點 –