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。
例子:
将列表 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
嗯,我是用的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。。
在确定list里的所有元素都是字符串的前提下,用字符串中的join()函数就可以实现:
str = "".join(lst) #""即空字符串