我正在尝试在Python中使用[i]
个类似函数执行for循环:
i = int(raw_input())
for i in range (0, i):
myfunction[i] = str(raw_input())
我收到一个错误,它没有定义。所以我正在定义它......我如何定义[i]相似函数的数量?
答案 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