获取元组的第二个元素(在元组列表中)作为字符串

时间:2016-12-07 02:28:51

标签: python string tuples

我的输出是一个元组列表。它看起来像这样:

annot1=[(402L, u"[It's very seldom that you're blessed to find your equal]"), 
        (415L, u'[He very seldom has them in this show or his movies]')…

我需要使用元组的第二部分才能应用'split'并分别获得句子上的每个单词。

此时,我无法隔离元组的第二部分(文本)。

这是我的代码:

def scope_match(annot1):
    scope = annot1[1:]
    scope_string = ‘’.join(scope)
    scope_set = set(scope_string.split(' '))

但我明白了:

TypeError: sequence item 0: expected string, tuple found

我尝试使用annot1 [1]但是它给了我文本的第二个索引而不是元组的第二个元素。

2 个答案:

答案 0 :(得分:3)

你可以用列表推导做这样的事情:

[["It's", 'very', 'seldom', 'that', "you're", 'blessed', 'to', 'find', 'your', 'equal'], ['He', 'very', 'seldom', 'has', 'them', 'in', 'this', 'show', 'or', 'his', 'movies']]

输出:

for x,y in zip(annot1,annot2):
    print set(x[1].strip('[]').encode('utf-8').split()).intersection(y[1].strip('[]').encode('utf-8').split())

您可以计算annot1和annot2中相应位置的字符串交集,如下所示:

ListView.GroupHeaderTemplate

答案 1 :(得分:1)

annot1是元组列表。要从每个元素中获取字符串,您可以执行类似这样的操作

def scope_match(annot1):
    for pair in annot1:
        string = pair[1]
        print string  # or whatever you want to do