【发布时间】:2012-03-06 01:59:15
【问题描述】:
这些 Python 列表推导的 R 等价物是什么:
[(i,j) for i,j in zip(index, Values)]
[(i,j) for i,j in enumerate(Values)]
[(i,j) for i,j in enumerate(range(10,20))] %MWE, indexing or enumerating to
%keep up with the index, there may
%be some parameter to look this up
输出示例
>>> [(i,j) for i,j in enumerate(range(10,20))]
[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), (8, 18), (9, 19)]
我之前已经用 R 中的一些技巧解决了这个问题,但现在不记得了,第一个想法是 itertools -pkg 但我希望找到一种更惯用的做事方式。
【问题讨论】:
-
如果你能为我们这些不熟悉 Python 的人提供一个小的工作示例,它可能会增加潜在回答者的数量。我猜最后一个是
expand.grid(i=10:20,j=10:20) -
@BenBolker:添加了一个输出——现在清楚了吗?这可能更具挑战性,但逻辑很重要......
-
我同意@DWin。期望 R 和 Python 中的数据结构之间存在一对一的映射是不合理的。如果你想要好的答案,你应该指定你希望结果在 R 中而不是在 Python 中的外观。
-
顺便说一句,这里有一个压缩和展平两个列表的巧妙方法:
as.vector(rbind(1:10, 11:20))