【问题标题】:python list comprehension double for but keep grouping formpython列表理解加倍但保持分组形式
【发布时间】:2017-08-25 02:35:15
【问题描述】:

我有以下列表

grouping = [[('Amy',1),('Bob',2)],[('Cindy',3)]]

我希望我可以提取名称但保留分组形式

[['Amy','Bob'],['Cindy']]

我尝试使用

result = [x[0] for b in grouping for x in b]

但它会给我 ['Amy','Bob','Cindy']。

【问题讨论】:

    标签: python-3.x nested iteration list-comprehension


    【解决方案1】:

    对于grouping 中的每个子列表,您希望创建一个由每个组成元组的第 0 个元素组成的新列表。所以:

    >>> grouping = [[('Amy',1),('Bob',2)],[('Cindy',3)]]
    >>> [x[0] for b in grouping for x in b]
    ['Amy', 'Bob', 'Cindy']
    >>> [[x[0] for x in b] for b in grouping]
    [['Amy', 'Bob'], ['Cindy']]
    

    【讨论】:

    • 非常感谢!这么强大的方式。我不知道我可以在括号内再放一个括号!
    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多