-1

嗨,我刚开始使用 python 并且有一个非常愚蠢的问题。

我有一个看起来像这样的列表:

[(1.0, 'Test1'), (1,3 'Test2'), (1.4 'Test3')]

我怎样才能只得到“Test1 Test2 Test3”作为回报?

此致

4

3 回答 3

2
>>> L = [(1.0, 'Test1'), (1.3, 'Test2'), (1.4, 'Test3')]
>>> [x[1] for x in L]
['Test1', 'Test2', 'Test3']

>>> " ".join(x[1] for x in L)
'Test1 Test2 Test3'

您也可以使用itemgetter(1),但通常首选上述方法

>>> from operator import itemgetter
>>> " ".join(map(itemgetter(1), L))
'Test1 Test2 Test3'
于 2013-11-08T02:21:00.947 回答
0

只是一个加入列表理解的空格,用于获取每个元组的最后一项,或者:

    items = [(1.0, 'Test1'), (1,3 'Test2'), (1.4 'Test3')]
    return " ".join([item[-1] for item in items])
于 2013-11-08T02:22:00.427 回答
0

要获取列表['Test1', 'Test2', 'Test3'],您可以执行以下操作:

list = [(1.0, 'Test1'), (1.3, 'Test2'), (1.4, 'Test3')]
newlist = []
for (key, value) in list:
    newlist.append(value)

那么newlist将是['Test1', 'Test2', 'Test3'] 或只是

newlist = [value for (key, value) in list]

这使用 Python 的元组解包来获取列表中每个元组的第二个元素。有关元组的更多信息,请参阅http://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences

'Test1 Test2 Test3'您可以使用''.join其他答案提到的创建字符串:

' '.join(newlist)
于 2013-11-08T02:24:08.703 回答