Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中类似于R矢量化的循环操作_Python_Python 2.7 - Fatal编程技术网

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

Python中类似于R矢量化的循环操作,python,python-2.7,Python,Python 2.7,我试图通过翻译R代码来了解更多Python功能,同时注意不同的方法。R串联中有一个循环规则,如果字符串是彼此的倍数,则计算器将循环较小的对象以匹配较大对象的长度。下面是一个例子: lttrs <- c("A", "B", "C") lbl <- "pct" users <- c(1,2) 我已经能够翻译rep(用户,每个=长度(lttrs))调用: import numpy as np lttrs = ['A', 'B', 'C'] lbl = ['pct'] users =

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

lttrs <- c("A", "B", "C")
lbl <- "pct"
users <- c(1,2)
我已经能够翻译
rep(用户,每个=长度(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]

我正在努力向前迈进。

听起来像是你想要的东西,它提供了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))

您是否必须使用
join
来获取最终输出
[“Apct1”“Bpct1”“Cpct1”“Apct2”“Bpct2”“Cpct2”]
?@pierrelaffortune是的,或者您可以手动连接。请注意,任何不包含字符串的列表都必须进行转换(这里我使用了
map
),谢谢。它仍然以
print
和not
list
给出输出。如果我保存此输出以供进一步操作使用,如何将输出保存到新变量?@pierrelaffortune
p=product(…)
另存为generator@PierreLafortune:您还可以使用
列表(map(''.join,product(lttrs,lbl,map(str,users)))
列表在Python2.7中不是必需的,但是在Python3中(为了获得列表)是必需的。
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))