理解旨在按彼此独立的顺序映射项目,并且不适用于诸如您的问题中的情况之类的聚合,其中项目附加到的子列表取决于前一项附加到的子列表。
如果需要,您可以使用嵌套的理解来产生所需的输出,但是它将把本来可以解决的 O(n) 时间复杂性通过循环转换为一个需要 O(n ^ 2) 的循环:
{k: [v for s, v in mylist if s == k] for k, _ in mylist}
理解旨在按彼此独立的顺序映射项目,并且不适用于诸如您的问题中的情况之类的聚合,其中项目附加到的子列表取决于前一项附加到的子列表。
如果需要,您可以使用嵌套的理解来产生所需的输出,但是它将把本来可以解决的 O(n) 时间复杂性通过循环转换为一个需要 O(n ^ 2) 的循环:
{k: [v for s, v in mylist if s == k] for k, _ in mylist}