R'的等效函数是什么;python中的sc()?

R'的等效函数是什么;python中的sc()?,python,r,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 在python中是否有类似的操作?在python中,向列表中添加

每当我试图在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

在python中是否有类似的操作?

在python中,向列表中添加项的正确方法是通过append

mylist.append(element)
否则,您可以使用列表理解生成无字符串或空字符串的列表:

mylist= [None for i in range(100)]
这将生成一个包含100个非的列表。然后,您可以按索引分配:

mylist[2] = 4

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

>>列表=[[1,2,3]、[4,5,6]、[7,8,9]]
>>>总和(列表,[])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
但是,这与代码中的错误无关。问题是,在Python中,只能使用语法
mylist[i]=x
在已经存在的索引处设置新值。因为您创建了一个空列表,所以它没有元素,所以索引2超出了范围


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

q=dict() >>>q[2]=9
但是,对于具有一些未设置值的列表,某些操作所做的与您期望它们所做的不匹配;例如,
len(q)
给出设置的元素数,而不是包含未设置值的序列长度。

R数组和向量类型与python列表非常不同。也许在python中添加关于为什么要这样做的上下文可以帮助找到正确的表达式。此外,请注意python和R是如何使用不同的索引的。Python从0(第一个元素)开始,其中R从1(第一个元素)开始。这实际上并没有回答发布的问题是的,忘记了最后一部分
mylist[2] = 4