如何在python中创建'i'个函数?

时间:2012-01-09 11:54:13

标签: python

我正在尝试在Python中使用[i]个类似函数执行for循环:

i = int(raw_input())
for i in range (0, i):
  myfunction[i] = str(raw_input())

我收到一个错误,它没有定义。所以我正在定义它......我如何定义[i]相似函数的数量?

4 个答案:

答案 0 :(得分:3)

larsmans的回答也可以这样实现:

def make_function(x):
    def function(y):
        return x + y
    return function

functions = [make_function(i) for i in xrange(5)]

# prints [4, 5, 6, 7, 8]
print [f(4) for f in functions]

<强>更新

从编辑和所有评论中,您似乎想要询问用户N号,然后要求N个字符串并将它们放入列表中。

i = int(raw_input('How many? '))
strings = [raw_input('Enter: ') for j in xrange(i)]
print strings

运行时:

How many? 3
Enter: a
Enter: b
Enter: c
['a', 'b', 'c']

如果列表理解对你来说似乎不可读,那么你可以在没有它的情况下做到这一点,并附上一些评论:

i = int(raw_input('How many? '))
# create an empty list
strings = []
# run the indented block i times
for j in xrange(i):
    # ask the user for a string and append it to the list
    strings.append(raw_input('Enter: '))
print strings

答案 1 :(得分:2)

您无法按索引设置列表项,请尝试:

myfunction = []
for i in range(0, 5):
    myfunction.append(whatever)

答案 2 :(得分:1)

我不确定你想要什么,但是从你所说的一切来看,在我看来只是这样:

def myfunction(j):
    for i in range(j):
        variable.append(raw_input('Input something: '))

我仍然认为这可能不是你想要的。如果我错了,请纠正我,请稍微清楚。

答案 3 :(得分:0)

myfunction[i]是列表myfunction中的第i个元素,您尚未定义它;因此错误。

如果你想要一系列功能,你可以尝试这样的事情:

def myfunction(i,x):
    if i==0:
        return sin(x)
    elif i==1:
        return cos(x)
    elif i==2:
        return x**2
    else:
        print 'Index outside range'
        return

如果您需要与i有关的类似功能,它会变得更简单,如下例所示:

def myfunction(i,x):
    return x**i