Python中怎么把list转换为字符串?

我定义了这样一个数组,里面有两个字符串
connList = ["db1", "db2"]
接着一个循环
for dbname in connList
print dbname // 这里没事
stra = "connect " + dbname // 这里就出问题了
....
报的错是:
TypeError: cannot concatenate 'unicode' and 'list' objects
是不是应该要把dbname转成字符串?可是它应该就是字符串啊……?应该怎么转才对?
ETA2:呃,多谢回答,试了str(dbname)但是问题还是存在……
TypeError: cannot concatenate 'str' and 'list' objects

好吧,其实那个connList里的东西是通过一系列函数从系统中把db的名字读出来的,我print出来看它只是一个字符串,就一直把它当字符串了,现在看来有可能并不是的……

于是问题又回来了,怎么把一个list转成字符串?

ETA3: 刚刚仔细读了一下代码,connList这个数组里的是从一个Java类中返回的String。这种String跟python的字符串是有什么不同么?它们之间需要怎么转换么?

ETA4: 我也觉得很没理由哪。。。。。源码挺长的,重点部分如下
Java文件里:
Map<String, String> nameMap = new HashMap<String, String>();
//某个循环里:
nameMap.put( "dbs" + i + "_name", System.getenv("DBS" + i + "_NAME"));
nameMap.put(System.getenv("DBS" + i + "_NAME"), "dbs" + i + "_name");

Python文件里:
dbname1 = nameMap.get("dbs1_name")
dbname2 = nameMap.get("dbs2_name")
connList = [dbname1, dbname2]
//接着就是for循环了

刚刚又试了看看dbname的类型
print type(dbname)
结果是<type 'unicode'>
哪里有list啊???这

List中存的是字符串的时候,一般是通过join()函数去转换:

例 :
   dataList = ['1', '2', '3', '4' ]
   

str1 = “ , ” + join(dataList )
   

print (dataList) 

结果:
a b c d

扩展资料

关于join()函数:

join()是一个字符串方法,它返回被子字符串连接的字符串。

参数:The join() method takes join()方法需要可迭代的元素来一次返回它的一个成员,比如列表,元组,字符串,字典和集合

返回值:join()方法返回一个被子字符串连接的字符串。

Type Error: 如果这个可迭代元素包含任何不是字符串的值,join()函数就会抛出TypeError。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-20

例子:

将列表 temp_list = ['h', 'e', 'l', 'l', 'o'] 转换成字符串'hello',代码如下:

temp_list = ['h', 'e', 'l', 'l', 'o'];result = ''.join(temp_list)print(result)    # hello

字符串对象的方法join其描述如下:s.join(iterable)是将括号内的迭代对象(如列表)使用s字符串作为链接将迭代对象中的元素拼接成一个字符串,返回该字符串。

扩展资料:

Python的控制语句:

1、if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。

2、for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。

3、while语句,当条件为真时,循环运行语句块。

4、try语句,与except,finally配合使用处理在程序运行中出现的异常情况。

5、class语句,用于定义类型。

6、def语句,用于定义函数和类型的方法。

7、pass语句,表示此行为空,不运行任何操作。

参考资料来源:百度百科-Python

本回答被网友采纳
第2个回答  推荐于2017-09-29

额。。。应该是没问题的

不成的话你转换一下试试吧

stra = "connect " + str(dbname) 

你是用jython么?

nameMap在java里是hashmap的 在python里是个map么?

你确定这两种数据结构可以混用?

怀疑是这个map从java到python的时候string成unicode了

可以详细给下这map中间是怎么转换弄的么?

追问

嗯,我是用的jython,但是跟python不是类似的么~

这两个是可以用,就是jython里把java的类import进来就用了……

我发现问题所在了,我的stra本来是个很长的串,我用换行隔开,类似这样
stra = "connect " + dbname + "bla bla..." \
+ "bla bla..." + i \
+ "bla bla..."
我试了下不换行,就全放到一行里,丑了点,但是,问题解决了...= =
是因为这样一换行就认为stra是个list了么?

追答

额。。。好吧 你解决了就好 只是完全不清楚怎么这样子呢?那个 i 如果是int的就会
TypeError: cannot concatenate 'str' and 'int' objects
换行是没有关系的(只要格式正确) string+string还是个string ”+“就相当于一个string的_add_()函数
既然你报错TypeError: cannot concatenate 'unicode' and 'list' objects
看来什么地方被转成unicode的了。。。
不了解 日后得看看jython。。

追问

sorry, 那个i是个字符串,字数满了就随便拿了个字母而已~

嗯,这个问题虽然我还没弄明白……多谢你了……

本回答被提问者采纳
第3个回答  推荐于2017-10-02

在确定list里的所有元素都是字符串的前提下,用字符串中的join()函数就可以实现:

str = "".join(lst)  #""即空字符串

第4个回答  2011-03-22
我试过了……没有报错呀……试试str(dbname)
相似回答