创建字符串Python的列表

创建字符串Python的列表,python,list,python-3.x,Python,List,Python 3.x,我想使列表数据成为字符串。 我的列表数据如下: [['data1'],['data2'],['data3']] "[data1] [data2] [data3]" data=[['data1'],['data2'],['data3']] list=" ".join(data) string= " ".join(data) TypeError: sequence item 0: expected string, list found 我想转换成如下字符串: [['data1'],['d

我想使列表数据成为字符串。 我的列表数据如下:

[['data1'],['data2'],['data3']]
"[data1] [data2] [data3]"
data=[['data1'],['data2'],['data3']]
list=" ".join(data)
  string= " ".join(data)
TypeError: sequence item 0: expected string, list found
我想转换成如下字符串:

[['data1'],['data2'],['data3']]
"[data1] [data2] [data3]"
data=[['data1'],['data2'],['data3']]
list=" ".join(data)
  string= " ".join(data)
TypeError: sequence item 0: expected string, list found
我尝试这样使用join:

[['data1'],['data2'],['data3']]
"[data1] [data2] [data3]"
data=[['data1'],['data2'],['data3']]
list=" ".join(data)
  string= " ".join(data)
TypeError: sequence item 0: expected string, list found
但得到如下错误:

[['data1'],['data2'],['data3']]
"[data1] [data2] [data3]"
data=[['data1'],['data2'],['data3']]
list=" ".join(data)
  string= " ".join(data)
TypeError: sequence item 0: expected string, list found
有人能帮我吗?

这个怎么样

data = [['data1'], ['data2'], ['data3']]
result = " ".join('[' + a[0] + ']' for a in data)
print(result)

根据您希望输出与示例相符的程度,您有几个选项,请按复杂度的升序显示:

>>> data=[['data1'],['data2'],['data3']]
>>> str(data)
"[['data1'], ['data2'], ['data3']]"
>>> ' '.join(map(str, data))
"['data1'] ['data2'] ['data3']"
>>> ' '.join(map(str, data)).replace("'", '')
'[data1] [data2] [data3]'
请记住,如果给定的
数据样本与实际数据不匹配,这些方法可能产生也可能不会产生所需的结果。

如何:

In [13]: a = [['data1'],['data2'],['data3']]

In [14]: import json

In [15]: temp = " ".join([json.dumps(x) for x in a]).replace("\"", "")

In [16]: temp
Out[16]: '[data1] [data2] [data3]'
你试过了吗

data=[['data1'],['data2'],['data3']]
t =  map(lambda x : str(x), data)
print(" ".join(t))

实时演示-

在Python3.x中,
str.join()的iterable元素必须是字符串

您得到的错误-
TypeError:sequence item 0:expected string,list found
-是因为传递给
str的列表元素是list(因为
数据
是列表列表)

如果每个子列表只有一个元素,那么只需执行以下操作即可-

" ".join(['[{}]'.format(x[0]) for x in data])
演示-

>>> data=[['data1'],['data2'],['data3']]
>>> " ".join(['[{}]'.format(x[0]) for x in data])
'[data1] [data2] [data3]'
>>> data=[['data1'],['data2'],['data3']]
>>> " ".join(['[{}]'.format(','.join(x)) for x in data])
'[data1] [data2] [data3]'

如果子列表可以有多个元素,并且在输出中,您希望这些多个元素用
分隔。您可以在
str.join()
中使用列表理解来创建所需的字符串列表。范例-

" ".join(['[{}]'.format(','.join(x)) for x in data])
对于除“
”、“
”以外的其他分隔符,请在-
”.join(x)
中使用该分隔符

演示-

>>> data=[['data1'],['data2'],['data3']]
>>> " ".join(['[{}]'.format(x[0]) for x in data])
'[data1] [data2] [data3]'
>>> data=[['data1'],['data2'],['data3']]
>>> " ".join(['[{}]'.format(','.join(x)) for x in data])
'[data1] [data2] [data3]'
对于子列表中的多个元素-

>>> data=[['data1','data1.1'],['data2'],['data3','data3.1']]
>>> " ".join(['[{}]'.format(','.join(x)) for x in data])
'[data1,data1.1] [data2] [data3,data3.1]'

尝试以下方法。这也可以通过“减少”实现:


输出:['data1','data2','data3']

您知道您有嵌套列表(包含字符串的列表)而不是简单的字符串列表吗?@TigerhawkT3我从读取的CSV文件中获取列表并获取该格式。这很好。您是否知道
数据
不包含字符串?事实上,它包含列表。您可以
连接字符串,但不能连接列表。考虑到这一事实,尝试另一种方法。@TigerhawkT3你能帮我编写简单的代码吗?对不起,我是Python的新手programming@ImamAbdulMahmudi子列表中是否可以有多个元素?如果是这样的话,你想如何处理呢?为什么是
lambda x:str(x)
而不仅仅是
str
?哦,是的。你是对的。我在尝试不同的东西,所以忘了拿出来。