我的列表包含int,float和string:
lists = [10, "test", 10.5]
如何将上面的列表转换为字符串?我试过了:
val = ','.join(lists)
print val
我收到这样的错误:
sequence item 0: expected string, int found
我该如何解决这个问题?
答案 0 :(得分:12)
首先使用str
函数使用map
将整数转换为字符串,然后使用join
函数 -
>>> ','.join(map(str,[10,"test",10.5]) )#since added comma inside the single quote output will be comma(,) separated
>>> '10,test,10.5'
或者如果您想将列表的每个元素转换为字符串,请尝试 -
>>> map(str,[10,"test",10.5])
>>> ['10', 'test', '10.5']
或者使用itertools
来提高内存效率(大数据)
>>>from itertools import imap
>>>[i for i in imap(str,[10,"test",10.5])]
>>>['10', 'test', '10.5']
或者只是使用列表理解
>>>my_list=['10', 'test', 10.5]
>>>my_string_list=[str(i) for i in my_list]
>>>my_string_list
>>>['10', 'test', '10.5']
答案 1 :(得分:4)
最简单的方法是将整个内容发送到write
或str()
:
repr()
>>> lists = [10, "test", 10.5]
>>> str(lists)
"[10, 'test', 10.5]"
可能会产生与repr()
不同的结果,具体取决于str()
中为每种类型的对象定义的内容。 list
的要点是您可以将此类字符串发送回repr()
或eval()
以获取原始对象:
ast.literal_eval()
答案 2 :(得分:2)
a = ['b','c','d']
strng = ''
for i in a:
strng +=str(i)
print strng
答案 3 :(得分:1)
您收到的错误是因为join
希望元素为string
类型,但在您的列表中也有integer
,所以首先您需要将它们转换为字符串类型。< / p>
你可以使用list comprehension和str加入加入
>>> lists = [10,"test",10.5]
>>> ",".join(str(x) for x in lists)
答案 4 :(得分:1)
您必须将列表中的每个项目作为字符串传递到&#39;,#39; .join(序列)。考虑使用:
val =&#39;,&#39; .join([列表项目的[str(项目)])
打印val
答案 5 :(得分:0)
如果要将列表中的每个元素转换为字符串,只需使用for循环即可。
for i in range(len(lists)):
lists[i] = str(lists[i])
或者,如果你想创建一个所有元素连接在一起的字符串,你可以稍微编辑上面的代码。
string_of_lists = ""
for i in lists:
string_of_lists += str(i)
正如您所知,除了使用join的其他解决方案之外,这是另一种方法。
我希望我帮忙!
答案 6 :(得分:0)
这也是可能的。这里x
变量是列表。
>>> '%s'*len(x) % tuple(x)
答案 7 :(得分:0)
如上所述here
list=['a/b/c', 'd/e/f']
file_list_string= ' '.join(list)
file_list_string= ' '.join(str(file) for file in list)
答案 8 :(得分:0)
import functools
lists = [10,"test",10.5]
print(functools.reduce(lambda x,y:x+","+y,list(map(str,lists))))
答案 9 :(得分:0)
您总是可以用肮脏的方式做到这一点:
list_name = ["a", "b", "c"];
string_name = "";
for c in list_name:
string_name += c
print(string_name)
输出:
"abc"
这应该适用于整数,浮点数和字符串,始终将其转换为字符串类型。