gpt4 book ai didi

python函数产生元组,只需要一个元素

转载 作者:太空狗 更新时间:2023-10-30 00:24:54 24 4
gpt4 key购买 nike

我有一个函数

def f():
# whatever
yield (a,b)

现在我想收集所有的 a 但不是 b。我还希望结果 aa 是一个列表而不是迭代器。现在我用

aa, _ = zip(*f())

就空间/时间效率而言,这是最好的吗?

最佳答案

zip(*seq) 必须摄取整个生成器,然后才能输出列。这效率不高。

只坚持列表理解。您可以使用元组赋值:

aa = [a for a, _ in f()]

或使用索引:

aa = [tup[0] for tup in f()]

如果您没有让所有值都可用于随机访问或其他必须有列表的操作,您可以使用生成器表达式来保持内存效率:

aa = (a for a, _ in f())

关于python函数产生元组,只需要一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41049732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com