Python:将多个列表连接成一句话
你好,我有多个列表。例如:
[u'This/ABC']
[u'is/ABC']
[u'not/ABC']
[u'even/ABC']
[u'close/ABC']
[u'to/ABC']
[u'funny/ABC']
[u'./ABC']
[u'O/ABC']
[u'noez/ABC']
[u'!/ABC']
我需要把这个列表和
This/ABC is/ABC not/ABC even/ABC close/ABC to/ABC funny/ABC ./ABC
O/ABC noez/ABC !/ABC
合并在一起,请问我该怎么做呢?对了,中间要留个空格!
4 个回答
1
简单:
x = [[u'O/ABC'], [u'noez/ABC'], [u'!/ABC']]
print ' '.join(y[0] for y in x)
3
要把多个列表合并在一起,可以试试itertools模块里的chain函数。例如,你可以这样做:
import itertools
print ' '.join(itertools.chain(mylist))
如果你想在两个列表之间加个空行,那就在第一个列表的末尾加上'\n'。
import itertools
a = [[u'This/ABZ'], [u'is/ABZ'], ....]
b = [[u'O/ABZ'], [u'O/noez'], ...]
a.append('\n')
print ' '.join(itertools.chain(a + b))
6
如果你把它们都放在一个列表里,比如这样:
a = [
[u'This/ABC'],
[u'is/ABC'],
...
]
你可以通过把所有列表加在一起,然后对结果使用普通的连接方法来得到你的结果:
result = ' '.join(sum(a, []))
在我多次重新阅读这个问题后,我想你可能也想要那个空行。这其实也是类似的做法。你只需要加上:
b = [
[u'O/ABC'],
[u'HAI/ABC'],
...
]
lines = [a, b]
result = '\n\n'.join([' '.join(sum(line, [])) for line in lines])