尝试在for循环期间打印列表中的项目

时间:2014-06-03 15:50:35

标签: python for-loop

我正在尝试为我正在联系的人编写程序。我在for循环中尝试做的是打印通过循环传递的变量以及变量值。出于某种原因,当我在第一个循环中为各个变量“打印str(item)”时,没有打印任何内容。 “未知”打印,但不是变量名称。

在另一个for循环中,当我尝试将列表名称作为字符串运行时,我收到一条错误消息“TypeError:无法连接'str'和'list'对象”。我怎么能绕过这个?

如果不清楚,我要做的是打印变量名称和值

List= [Name, Company, Email, Work, Cell, Address]
Name = "Last, First"
Company = ""
Email = ""
Work = ""
Cell = ""
Address = ""
Todo = ['Do this']
Done = ['Did this']
Follow = ['Follow up on this day']

for item in List:
    if item == "":
        print str(item)+ "unknown"
    else:
        print item



print " "

for item in List1:
    if len(item) == 0:
        pass
    else:
        print str(item) + item

2 个答案:

答案 0 :(得分:0)

你需要搬家:

List= [Name, Company, Email, Work, Cell, Address]

下面:

Name = "Last, First"
Company = ""
Email = ""
Work = ""
Cell = ""
Address = ""
Todo = ['Do this']
Done = ['Did this']
Follow = ['Follow up on this day']

否则它不知道那些变量类型是什么。至于试图打印变量的名称;这有点复杂。这是因为在进行for循环时,它们在该范围内采用名称“item”。因此,即使您使用inspect模块获取变量的名称,您最终也会将所有变量名称都设置为item。您可能想要使用的是Dictionary(如果您关心订单,则为OrderedDict)。它看起来像这样:

List = {"Name": Name, "Company": Company, "Email": Email, "Work": Work, "Cell": Cell, "Address": Address}

然后你可以修改你的循环:

for item in List:
    if List[item] == "":
        print item + " unknown"
    else:
        print item

同样作为一般惯例,将变量命名为它们的类型永远不是一个好主意。避免调用像List,Int,String等变量的东西。这是一种不好的做法,只会导致将来混乱。

答案 1 :(得分:0)

List放在Follow之后;在将这些组件放入列表

后,您将对其进行定义