【发布时间】:2016-12-07 05:13:21
【问题描述】:
我使用的是 Python 2.7,几天前开始学习 Python。我仍在尝试了解 Python 如何索引数组。数组从零而不是一开始。我正在练习操纵数组,可以使用一些帮助。
我有 2 个数组 - A 和 B - 我想获得与 A 中的值平行的 B 中的值。
下面是我用来帮助我精通数组的代码:
A = [2, 8, 29, 34, 54, 61, 73, 89, 97, 101]
B = [201, 309, 454, 540, 602, 750, 889, 973, 1003, 1120]
B[2] = 454
# B[2] = 201 this is what I want
B[8] = 1003
#B[8] = 309 this is what I want
两个数组的长度相同,但如您所见,我正在尝试建立索引。如果我只做 B[A],它是一个越界索引错误代码。我尝试使用:
A.searchsorted(B) #but still get an error.
我不确定我是否有任何意义,因为我知道我的想法是什么,但就是无法说出正确的措辞以使其更容易。希望上面的例子能说明我想要什么。我在网站上发现的唯一内容是 searchsorted(也许我使用不正确)。这个方法是从之前的问题中引起我注意的,我进一步研究了它,但仍然找不到我要找的东西。
【问题讨论】:
-
你的问题没有意义。
value in B that is parallel to the value in A是什么意思? 201 不是 B[2],201 是 B[0]。 A[0] 是 2。B[A[0]] 也是 454,因为 B[A[0]] == B[2] == 454。 -
我想要 B[2] = 201,即使 B[0] = 201。当我的意思是并行时,我的意思是必须有相似长度的数组。假设我们将它们并排放置。我想要一个数组的值对应于另一个数组。 2和201分别是A[0]和B[0]。我想通过使用 A 中的第一个值来获得 B 中的第一个值,因此 B[2] = 201,而不是 B[0]。我不确定这是否可能,但这是否更有意义?
-
你不能使用A中的第一个值得到B中的第一个值。 A 中的第一个值是 2,您可以将其用作具有语法
B[A[0]]的索引,但这不会给您“B 中的第一个值”,而是 B 中的第三个值,因为A[0] == 2,数组索引从 0 开始。编辑:简单地说,B 中的第一个值是 B[0],句点。在您的示例中为 201。 -
谢谢。我正在阅读一个 searchsorted 示例,其中 A = [1, 4, 5, 8] 和 B = [ 0, 1, 3] 和 A.searchsorted(B) = [1,4,8]。我想,我想看看我是否可以使用它,但是使用 Python 索引,它看起来真的是不可能的。
-
您可能对 searchsorted 有误解。见:stackoverflow.com/questions/15425962/…
标签: arrays python-2.7 indexing