我想将列表数据设为字符串。 我的列表数据如下:
[['data1'],['data2'],['data3']]
我想像这样转换为字符串:
"[data1] [data2] [data3]"
我尝试使用这样的连接:
data=[['data1'],['data2'],['data3']]
list=" ".join(data)
但是得到这样的错误:
string= " ".join(data)
TypeError: sequence item 0: expected string, list found
有人能帮助我吗?
答案 0 :(得分:1)
根据您希望输出与样本一致的程度,您有几个选项,按复杂程度的升序显示:
>>> data=[['data1'],['data2'],['data3']]
>>> str(data)
"[['data1'], ['data2'], ['data3']]"
>>> ' '.join(map(str, data))
"['data1'] ['data2'] ['data3']"
>>> ' '.join(map(str, data)).replace("'", '')
'[data1] [data2] [data3]'
请注意,如果您提供的data
样本与您的实际数据不符,这些方法可能会产生或不会产生预期效果。
答案 1 :(得分:1)
data=[['data1'],['data2'],['data3']]
t = map(lambda x : str(x), data)
print(" ".join(t))
现场演示 - https://repl.it/BOaS
答案 2 :(得分:1)
在Python 3.x中,TypeError: sequence item 0: expected string, list found
的iterable元素必须是一个字符串。
您收到的错误 - str.join()
- 是因为您传递给data
的列表元素是列表(因为" ".join(['[{}]'.format(x[0]) for x in data])
是列表列表)。
如果每个子列表只有一个元素,则只需执行 -
>>> data=[['data1'],['data2'],['data3']]
>>> " ".join(['[{}]'.format(x[0]) for x in data])
'[data1] [data2] [data3]'
演示 -
,
如果子列表可以包含多个元素,并且在输出中,您希望这些多个元素由str.join()
分隔。您可以使用" ".join(['[{}]'.format(','.join(x)) for x in data])
中的列表推导来创建所需的字符串列表。示例 -
','
对于除'<delimiter>'.join(x)
以外的其他分隔符,请在 - >>> 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]'
对于子列表中的多个元素 -
getCurrentTime()
答案 3 :(得分:1)
<!DOCTYPE html>
<html ng-app="myApp" class="{{themeClass}}">
<head lang="en">
<meta charset="UTF-8">
<title>Project Title</title>
</head>
<body>
<nav class="header">
<ul class="navbar">
<li>
<span>Project Name</span>
</li>
</ul>
</nav>
<div ng-controller="myCtrl">
</div>
</body>
</html>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope){
$scope.themeClass = something;
})
答案 4 :(得分:0)
这个怎么样?
data = [['data1'], ['data2'], ['data3']]
result = " ".join('[' + a[0] + ']' for a in data)
print(result)
答案 5 :(得分:0)
这个怎么样:
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]'
答案 6 :(得分:0)
尝试以下方法。这也可以通过“减少”来实现:
from functools import reduce
data = [['data1'], ['data2'], ['data3']]
print(list(reduce(lambda x,y : x+y, data)))
输出:['data1','data2','data3']