【发布时间】:2011-01-01 12:11:47
【问题描述】:
我主要使用 Python 进行编程,但我现在正在学习统计编程语言 R。我注意到这两种语言之间存在一些差异。
假设v 是一个向量/数组,包含从 1 到 5 的整数。
v[3] # in R: gives me the 3rd element of the vector: 3
# in Python: is zero-based, gives me the integer 4
v[-1] # in R: removes the element with that index
# in Python: gives me the last element in the array
还有其他需要注意的陷阱吗?
【问题讨论】:
-
v[3]在 python 中为您提供序列的第四个元素。在给定的情况下,这将是4。 -
@SilentGhost:当然,修正了错误。
-
标题并不能准确地代表这里的问题——这些不是“R 中的陷阱”,它们只是两种不同语言之间的基本区别。无论如何,v[-1] 不会“删除索引为 1 的元素”,它会返回一个包含除第一个元素之外的每个元素的新向量。
-
@mdsumner:我完全不同意。如果你的向量 v 有 100M 个元素,那么“意外”隐式地创建一个具有 100M-1 个元素的新向量 v[-1] 会很慢,很痛苦,也很错误。所以,这是一个陷阱。