Python相当于R list()

时间:2018-06-07 00:13:48

标签: r python-3.x

R的list()也允许带标签的元素,在Python中是否有相同的方法来实现以下目的?

list("prob", "topTalent", name="Roger")

2 个答案:

答案 0 :(得分:11)

https://docs.python.org/3/tutorial/introduction.html上的Python文档意味着您可以使用" [" ["]创建不同类型的递归结构(具有树特征的结构的正确R项)。操作者:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]

我只是一个R家伙,但这似乎意味着Python" list"数据类型非常类似于R的列表类型。

获得命名"递归"结构,似乎需要使用"字典" (由侧翼" {","}")创建。

>>> x = {'a':a, 'n':n}
>>> x
{'a': ['a', 'b', 'c'], 'n': [1, 2, 3]}

似乎Python需要其字典条目的名称,而R允许列表中的命名和未命名条目。

>>> x = {'a':a, 'n':n, 'z':[1,2,3], 'zz':{'s':[4,5,6], 'd':['t','y']} }
>>> x
{'a': ['a', 'b', 'c'], 'n': [1, 2, 3], 'z': [1, 2, 3], 'zz': {'s': [4, 5, 6], 'd': ['t', 'y']}}

使用R:

时,Python dicts的加入类似于对项目的访问
>>> x['zz']
{'s': [4, 5, 6], 'd': ['t', 'y']}
>>> x['zz']['s']
[4, 5, 6] 

答案 1 :(得分:3)

没有相应的东西。 Python列表没有R names,OrderedDict(在注释中建议)不允许等效的未命名元素或重复名称,也不支持元素位置访问。

dict是在Python中将对象与名称相关联的最常用方法,但它仍然与具有名称的R列表非常不同。您当然可以创建自己的类来尝试模仿等效的R数据结构,可能是子类化listcollections.UserList,但您必须自己实现许多功能,并且您传递对象的现有函数不知道如何处理这些名字。