嗨,我刚开始使用 python 并且有一个非常愚蠢的问题。
我有一个看起来像这样的列表:
[(1.0, 'Test1'), (1,3 'Test2'), (1.4 'Test3')]
我怎样才能只得到“Test1 Test2 Test3”作为回报?
此致
>>> 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'
只是一个加入列表理解的空格,用于获取每个元组的最后一项,或者:
items = [(1.0, 'Test1'), (1,3 'Test2'), (1.4 'Test3')]
return " ".join([item[-1] for item in items])
要获取列表['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)