Python中类似于R向量化的循环操作

2024-10-01 00:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过翻译R代码来了解更多关于Python功能的信息,同时注意不同的方法。在R连接中有一个循环规则,如果字符串是彼此的倍数,则计算器将回收较小的对象以匹配较大对象的长度。下面是一个例子:

lttrs <- c("A", "B", "C")
lbl <- "pct"
users <- c(1,2)

如果我想合并这三个对象来得到"Apct1" "Bpct1" "Cpct1" "Apct2" "Bpct2" "Cpct2"。我可以将最后一个对象users重复两倍于第一个对象的长度,R将计算出其余对象:

^{pr2}$

我已经能够翻译rep(users, each=length(lttrs))调用:

import numpy as np
lttrs = ['A', 'B', 'C']
lbl = ['pct']
users = [1,2]
print np.repeat(users, len(lttrs))
[1 1 1 2 2 2]

我正在努力向前迈进。在


Tags: 对象方法字符串代码功能信息规则np
1条回答
网友
1楼 · 发布于 2024-10-01 00:34:50

听起来你想要的是itertools.product,它给出了iterables的乘积。在

from itertools import product
lttrs = ['A', 'B', 'C']
lbl = ['pct']
users = [1,2]
combine = []
for p in product(lttrs, lbl, map(str, users)):
    combine.append(''.join(p))

相关问题 更多 >