使用for循环遍历函数

时间:2018-09-17 09:47:37

标签: python for-loop

我目前具有以下多种功能:

vect_1 = CountVectorizer(parameters)
vect_2 = CountVectorizer(parameters)
vect_3 = CountVectorizer(parameters)
vect_3 = CountVectorizer(parameters)

我正在尝试迭代其中的每一个。我尝试过:

for i in range(4):
    vect = vect_[i]
    print vect

而且我正在努力正确定义“ vect”部分,因为它只是一个字符串。有什么想法吗?

谢谢

4 个答案:

答案 0 :(得分:6)

这是使用列表的pythonic方法:

vects = [
    CountVectorizer(parameters),
    CountVectorizer(parameters),
    CountVectorizer(parameters),
    CountVectorizer(parameters)
]

for v in vects:
    print v

每当看到从字符串动态生成变量名时,即警告您需要更好的数据结构来表示数据。就像列表或字典一样。

答案 1 :(得分:1)

当然不是这样,但是请尝试globals(默认使用locals):

for i in range(1,5):
    vect = globals()['vect_%s'%i]
    print(vect)

尽管最Python化的方式还是使用@Oscar的解决方案

答案 2 :(得分:0)

我更喜欢使用列表或字典

def func_a(a):
    print(a)


def func_b(b):
    print(b, b)


def func_c(c):
    print(c, c, c)


def func_d(d):
    print(d, d, d, d)


# use list
func_list = [func_a, func_b, func_c, func_d]
for i in range(4):
    func_list[i](i)

# use dict
func_dict = {"vect_1": func_a,
             "vect_2": func_b,
             "vect_3": func_c,
             "vect_4": func_d}
for i in range(1, 5):
    func_dict["vect_" + str(i)](i)

将打印

0
1 1
2 2 2
3 3 3 3
1
2 2
3 3 3
4 4 4 4

答案 3 :(得分:0)

您可以循环浏览所有参数。

vectors = []
parameters = []
#Put code for adding parameters here

for parameter in parameters:
    vectors.append(CountVectorizer(parameter))

这将遍历您设置的参数,并使用每个参数运行该函数。现在,您可以从向量列表访问所有输出。