Q
構建列表
1
A
回答
1
它被稱爲list comprehension。正在發生的事情是類似以下內容:
results = []
for n in range(1,6):
results.append(n**2)
它通過包含值[0, 1, 2, 3, 4, 5]
和廣場每個值列表,因此迭代。然後將平方的結果添加到results
列表中,然後您將看到您看到的結果(相當於0**2, 1**2, 2**2
等,其中**2
表示「提高到第二個功率」)。
這個結構(基於其他條件填充值的列表)是Python中常見的一種,所以列表理解提供了一種簡寫語法來允許您這樣做。
1
分解成可管理的塊中的解釋:
>>> range(1, 6)
[1, 2, 3, 4, 5]
>>> 2 ** 2 # `x ** 2` means `x * x`
4
>>> 3 ** 2
9
>>> for n in range(1, 6):
... print n
1
2
3
4
5
>>> for n in range(1, 6):
... print n ** 2
1
4
9
16
25
>>> [n ** 2 for n in range(1, 6)]
[1, 4, 9, 16, 25]
0
所以這是一個list comprehension。
如果將其分解爲3個部分;用詞'for'和'in'分隔。
例如,
[1 2 3]
大概閱讀它向後是最簡單的:
- 3 - 這是輸入的列表轉換整個操作
- 2 - 這是單個項目從大名單
- 1 - 這是做關於該項目
部分1和2的操作是運行米對於第3部分給出的列表中的每個項目,都需要一次。部分1的輸出反覆運行,是整個操作的輸出。
因此,在你例如:
- 3 - 生成一個列表:[1,2,3,4,5] - 從第一個參數Range奔跑一個之前第二PARAM
- 2 - 'n' 表示在該列表
- 1單個數字 - 生成n的新列表** 2(N爲2的冪)
所以等效代碼如下:
result = []
for n in range(1, 6):
result.append(n**2)
最後打破了這一切:
input = [1, 2, 3, 4, 5]
output = []
v = input[0] # value is 1
o = v**2 # 1 to the power of two is 1
output.append(o)
v = input[1] # value is 2
o = v**2 # 2 to the power of two = (2*2) = 4
output.append(o)
v = input[2] # value is 3
o = v**2 # 3 to the power of two is = (3*3) = 9
output.append(o)
v = input[3] # value is 4
o = v**2 # 4 to the power of two is = (4*4) = 16
output.append(o)
v = input[4] # value is 5
o = v**2 # 5 to the power of two is = (5*5) = 25
output.append(o)
相關問題
- 1. 構建列表
- 2. SML構建列表
- 3. jsonp與jquery構建列表
- 4. Scala迭代構建列表
- 5. 遞歸構建列表
- 6. 構建列表網站
- 7. 構建列表爲WPF
- 8. Linq構建分層列表
- 9. 構建選擇列表
- 10. PHP - 如何構建樹結構列表?
- 11. 序列化類型構建器列表
- 12. Win8 Metro爲列表數據構建列
- 13. 構建表序列的序列
- 14. 構建billboard.js圖表的動態列表
- 15. 使用散列表構建符號表
- 16. 嵌套Python列表解析構建列表的列表
- 17. 如何構建scons MSVSProject構建器函數的文件列表?
- 18. 使用Double鏈接列表構建學生列表隊列
- 19. 構建陣列
- 20. 構建陣列
- 21. 構建陣列
- 22. Silverlight AutoCompleteComboBox - 異步構建列表?
- 23. 使用對象列表構建樹
- 24. 從選項列表中構建數組
- 25. 構建級聯列表的問題
- 26. KD-Tree「列表中位數」構建
- 27. Jquery標籤列表構建器組件
- 28. 從「包含」關係列表構建樹
- 29. 從列表中構建鏈接鏈
- 30. Android預構建UI組件列表
下面是一些有用的閱讀:HTTP://docs.python .ORG/2 /教程/ datastructures.html#列表內涵 – squiguy