R的list()也允许带标签的元素,在Python中是否有相同的方法来实现以下目的?
list("prob", "topTalent", name="Roger")
答案 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数据结构,可能是子类化list
或collections.UserList
,但您必须自己实现许多功能,并且您传递对象的现有函数不知道如何处理这些名字。