我偶然发现了这个单行:
[float(n)-50 for n in range(100)]
有人可以告诉我它的作用吗?它应该为向量返回一个浮点值。
最佳, 的Marius
答案 0 :(得分:5)
这是一个list comprehension,其内容为“创建一个包含100个元素的列表,这样,对于索引为n
的每个元素,将该元素设置为n-50”。
答案 1 :(得分:2)
列表推导提供了创建列表的简明方法。共同 应用程序将创建新列表,其中每个元素都是结果 一些操作应用于另一个序列的每个成员或 可迭代的,或创建满足a的元素的子序列 某种条件。
例如,假设我们要创建一个正方形列表,例如:
>>> 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))
, 但它更简洁,更易读。
答案 2 :(得分: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]