用于循环和追加到列表中

时间:2016-07-04 22:37:05

标签: python python-2.7

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

进入一个列表,但我无法获得一个列表,其中的演讲编号与逗号等号分开。

4 个答案:

答案 0 :(得分:3)

你得到的是奇怪的符号,因为'lecture', xtuple。一种数据类型,其作用类似于列表,但是非灵活列表。你不能轻易改变它们。您必须使用+ -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是可能的。

  • 5(Int)+ 5(Int)是10。
  • 5(String)+ 5(String)为55。
  • 但是5(String)+ 5(Int)是一个错误。

答案 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