使用python将列表转换为字符串

时间:2015-11-10 12:11:56

标签: python list

我的列表包含int,float和string:

lists = [10, "test", 10.5]

如何将上面的列表转换为字符串?我试过了:

val = ','.join(lists)
print val

我收到这样的错误:

sequence item 0: expected string, int found

我该如何解决这个问题?

10 个答案:

答案 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)

最简单的方法是将整个内容发送到writestr()

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"

这应该适用于整数,浮点数和字符串,始终将其转换为字符串类型。