Python - 连续获取整个列表对象的最简单方法

时间:2016-05-01 16:29:40

标签: python list

l = [['John'],['rides'],['bike'],['with'],['Mr.','Brown'],]

假设我有一个这样的列表对象。如何在不使用for语句的情况下连续打印列表对象并附加到字符串?

我想要的输出:

print("my sentence:" + ? )
print("people:" + ? + ", " + ?)

my sentence: John rides bike with Mr. Brown
people: John, Mr. Brown

主要编辑:

我之所以创建这个问题,是因为我分析了基于文本的文档并使用命名实体提取信息,所以我的问题是当我在列表中输入“name + surname”或“Blah Blah Organization”这样的顺序专有名词时:

[[u'Milletvekili', u'Ay\u015fe'], [u'oraya'], [u'Merve', u'Han\u0131m'], [u'ile'], [u'gitti'], [u'.']]

我有一个算法可以将列表对象与我的数据集进行比较,并描述实体类型。在if语句决定[u'Milletvekili',u'Ay \ u015fe']之后是一个人名;

if gettype(arr[i][0].split("'")[0]) == "Özel İsim":
      newarr.append("[Person: " + str(arr[i][0]) + "]")

我将其添加到我的新列表中,这将是我的输出,如[人:布朗先生]。但是我必须对大写单词进行分组然后我总是这样输出:

 [Person: [u'Milletvekili', u'Ay\u015fe']] 

3 个答案:

答案 0 :(得分:4)

不像“总和”那样优雅,但您可以将str.join()map()functools.partial()一起使用:

>>> from functools import partial
>>> " ".join(map(partial(str.join, " "), l))
'John rides bike with Mr. Brown'

答案 1 :(得分:4)

借鉴this answer

" ".join(sum(l, []))
Out[130]: 'John rides bike with Mr. Brown'

答案 2 :(得分:3)

展平列表,然后加入' '

>>> ' '.join(s for sub in l for s in sub)
'John rides bike with Mr. Brown'

itertools.chain

>>> from itertools import chain
>>> ' '.join(chain(*l))
'John rides bike with Mr. Brown'