开发者社区> 问答> 正文

Python:如何通过下一个项目值将列表中的元组链接

如何从* Python 3 *中的元组列表中获得预期结果?

[('I', 'N'),('love', 'V'),('Miley', 'N'),('Cyrus', 'N'),('but', 'ADV'),('hate', 'V'),('Liam', 'N'),('Hemsworth', 'N')]

预期成绩:

['I', 'love', 'Miley Cyrus', 'but', 'hate', 'Liam Hemsworth']

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 16:18:24 365 0
1 条回答
写回答
取消 提交回答
  • 您可以使用itertools.groupby对第二个元素进行分组,然后提取每个组的第一个元素:

    from itertools import groupby
    from operator import itemgetter
    
    data = [('I', 'N'), ('love', 'V'), ('Miley', 'N'), ('Cyrus', 'N'), ('but', 'ADV'), ('hate', 'V'), ('Liam', 'N'),
            ('Hemsworth', 'N')]
    
    result = [' '.join(t[0] for t in group) for k, group in groupby(data, key=itemgetter(1))]
    
    print(result)
    

    输出

    ['I', 'love', 'Miley Cyrus', 'but', 'hate', 'Liam Hemsworth']
    

    上面的列表理解等效于以下for循环:

    result = []
    for k, group in groupby(data, key=itemgetter(1)):
        result.append(' '.join(t[0] for t in group))
    

    回答来源:stackoverflow

    2020-03-23 16:18:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载