2010-07-08 74 views
2

我得到一个TypeError:无法连接'str'和'list'对象。无法连接'str'和'list'对象

我想传递一个列表中的对象来创建一个新的变量,通过连接它与另一个变量。

示例:我想从组列表中取值,并将其与“All.dbf”连接起来,以便对列表中的每个值执行该文件的操作。如果正常工作,它会将dbname的值分别设置为AdministrativeAll.dbf,CadastralAll.dbf和PlanimetericAll.dbf,但每次运行时我都会收到'str'和'list'错误....

group = ['Administrative', 'Cadastral', 'Planimetric'] 

for i in group: 
    dbname = i + "All.dbf" 

    blah, blah, blah.... 

我想我可以将“All.dbf”添加到组列表中的值,但认为必须有更好的方法来处理这个功能或我不知道的东西......任何想法?

干杯

+0

你得到那个代码的错误?你确定你没有'dbname = group +“All.dbf”'? – 2010-07-08 18:06:34

+0

很肯定 - 我有我的代码为: 组= [ '管理', '地籍', '地上物'] 因为我在群: DBNAME = I + “All.dbf” – Jay 2010-07-08 18:10:17

+2

你确认错误不是来自代码中的'blah,blah,blah'的代码?你能发布确切的错误和追溯? – 2010-07-08 18:11:53

回答

5

I suppose I could add the "All.dbf" onto the values in the group list but thought there must be a better way to process this with a function or something that I don't know about...

你可以使用一个list comprehension

group = [x + 'All.dbf' for x in group] 
+0

非常漂亮 - 我喜欢它 - 谢谢Mark! – Jay 2010-07-08 18:12:12

1
dbname = [i+"All.dbf" for i in group] 
0

你需要去虽然每个项目在列表中,将两者连接起来。每个循环的A是最好的选择。我不太熟悉python,所以你可能需要迭代列表。

0

在2.6.5运行此:

group = ['Administrative', 'Cadastral', 'Planimetric'] 
for i in group: 
    dbname = i + "All.dbf" 
    print 'Concat', dbname 

给出以下输出:

Concat AdministrativeAll.dbf 
Concat CadastralAll.dbf 
Concat PlanimetricAll.dbf 

最坏情况下,可以通过为列表的长度的范围内进行迭代,然后执行组[我] +“连接字符串”

相关问题