list = []
def lecture(x):
for x in range(1,x):
print 'lecture', x
所以我有这个代码来提供
的结果lecture 1
lecture 2
输入lecture(3)
。现在,当我将代码更改为
list = []
def lecture(x):
for x in range(1,x):
y = 'lecture', x
print y
我得到
的输出('lecture', 1)
('lecture', 2)
最终我想知道为什么会出现这种情况,因为我试图找到一种方法来追加第一个结果,:
lecture 1
lecture 2
进入一个列表,但我无法获得一个列表,其中的演讲编号与逗号等号分开。
答案 0 :(得分:3)
你得到的是奇怪的符号,因为'lecture', x
是tuple。一种数据类型,其作用类似于列表,但是非灵活列表。你不能轻易改变它们。您必须使用+ -operator而不是逗号将这两个值放入一个变量中。
使用append
函数将值放入列表中。
list = []
def lecture(x):
for x in range(1,x):
y = 'lecture' + str(x)
list.append(y);
lecture(5)
另请注意:
y = 'lecture' + str(x)
str(x)
是为了确保不同的数据类型(int和string)不会发生冲突。因为String + Int ain是可能的。
答案 1 :(得分:0)
将y = 'lecture', x
换成:
y = 'lecture ' + str(x)
这会将变量x
追加到'lecture'
并将其设置为变量y
答案 2 :(得分:0)
使用表达式y = 'lecture', x
,您将创建一个元组。改为创建一个空列表,并使用for循环向其附加值:
def lecture(x):
lecture_list=[]
for item in range(1,x+1):
y='lecture '+str(item)
lecture_list.append(y)
return lecture_list
答案 3 :(得分:0)
另一种方式:
class Lectures(object):
def __init__(self, x):
self.x = x
def __iter__(self):
for i in range(1, self.x):
yield "lecture" + i
这里有一个可迭代的类讲座。
首先,您需要初始化它,将x作为属性传递:
lectures = Lectures(x)
然后你可以将它用作可迭代的:
list_of_lectures = list(lectures)
或
for lecture in lectures:
do_something