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