2

我偶然发现了这个单行:

[float(n)-50 for n in range(100)]

有人可以告诉我它的作用吗?它应该为向量返回一个浮点值。

最好的,马吕斯

4

3 回答 3

5

这是一个列表理解,其内容为“创建一个包含 100 个元素的列表,以便对于 index 处的每个元素n,将该元素设置为等于 n-50”。

于 2012-05-05T16:27:20.403 回答
2

这是一个列表理解

列表推导式提供了一种创建列表的简洁方式。常见的应用是创建新列表,其中每个元素是应用于另一个序列或可迭代的每个成员的某些操作的结果,或者创建满足特定条件的那些元素的子序列。

例如,假设我们要创建一个正方形列表,例如:

>>> squares = []
>>> for x in range(10):
...     squares.append(x**2)
...
>>> squares 
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

我们可以通过以下方式获得相同的结果:

squares = [x**2 for x in range(10)]

这也等价于squares = map(lambda x: x**2, range(10)),但更简洁易读。

于 2012-05-05T16:28:21.727 回答
2

它的含义与以下内容相同:

[float(x) for x in range(-50, 50)]

或者(至少在 Python 2 中):

map(float, range(-50, 50))

如果您知道列表推导式或函数的工作原理,这些是不言自明的map:它们将整数范围-50...50转换为浮点数列表(上 50 个是不包括的)。结果是列表:

[-50.0, -49.0 ... 49.0]
于 2012-05-05T16:50:00.717 回答