【发布时间】:2016-02-23 12:19:52
【问题描述】:
我想创建一个包含初始点x = [x0 x1] 和扰动点y1 = [x0+h x1]、y2 = [x0-h x1]、y3 = [x0 x1+h] 等的列表。我已经尝试过:
xs = [x]*5;
for i in range(len(x)):
if isinstance(h, float):
xs[2*i+1][i] -= h;
xs[2*i+2][i] += h;
但这似乎会在循环运行时来回更改元素。
【问题讨论】:
-
[x]*5创建一个列表,其中所有项目都是对同一列表的引用。将其更改为[x[:] for i in range(5)]以创建每个列表的副本 -
你的问题对我来说没有意义。您首先说您有一个包含单个元素的列表,我猜(
[x0 x1]是否意味着[(x0, x1)]?),然后您提出的代码尝试引用嵌套列表? -
您是否需要一个平面中点的函数(即具有 2 个坐标),正如您的解释所暗示的那样;或具有任意数量坐标的点,正如您的“示例”代码(有很多错误)似乎暗示的那样?
-
@RNar,感谢您的解释。它可以是任意的。 LeartS 的答案解决了我的问题,尽管我知道它充满了错误(我是 python 新手,所以我没有意识到制作这些副本只是引用了同一个列表)。
-
这是 python 初学者(和非初学者)的常见问题。
标签: python