python - R的c()在python中的等价函数是什么?

标签 python r

<分区>

每当我尝试在 python 中创建一个空列表时,我意识到如果我不知道并定义它的范围,我就无法像在 R 中那样将值设置为我想要的任何索引。

q = list()
q[ 2 ] = 9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

但在 R 中,它不会发生。

Q = c( )
Q[ 4 ] = 3
>>> [1] NA NA  4

我可以在 python 中执行任何等效操作吗?

最佳答案

R 中的c 函数是一个将参数连接成列表的函数。您可以使用 + 在 Python 中连接两个列表;要连接可变数量的列表,就像 R 中的 c 一样,您可以使用 sum 函数。这通常会添加数字,但可用于通过从空列表而不是从 0 开始“开始”来添加列表:

>>> lists = [[1,2,3], [4,5,6], [7,8,9]]
>>> sum(lists, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]

但是,这与您的代码中的错误无关。问题在于,在 Python 中,您只能使用语法 mylist[i] = x 在已存在的索引处设置新值。由于您创建了一个空列表,它没有任何元素,因此索引 2 超出范围。


如果您希望能够在不一定形成连续范围的任意索引处设置值,您可以使用字典:

>>> q = dict()
>>> q[2] = 9

但是,某些操作的作用与您期望它们对具有某些未设置值的列表的作用之间存在不匹配;例如,len(q) 给出已设置元素的数量,而不是包含未设置值的序列长度。

关于python - R的c()在python中的等价函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633817/

相关文章:

r - 如何刻画 plot_ly() 图表?

python - 在 Python 中 pickle 字典

python - 在不阻塞 Pygame UI 的情况下录制声音

python - 如何使用 pip 在 Python3 上安装 Flask?

python - 在python lxml中获取无值(value)的元素

python 对象从错误的文本文件中获取先前的对象属性,并从正确的文本文件中获取它们自己的属性

r - 无法将值插入到 sqlite 表中

r - SQL Server RODBC 连接

r - 最大化二进制矩阵中的列和行

R包长时间安装 - 源或二进制类型