gpt4 book ai didi

python - 使用列表推导构建元组

转载 作者:IT老高 更新时间:2023-10-28 20:21:05 27 4
gpt4 key购买 nike

如何使用列表推导从列表中构建 2 元组的元组。它相当于

tup = ()
for element in alist:
tup = tup + ((element.foo, element.bar),)

最佳答案

tup = tuple((element.foo, element.bar) for element in alist)

从技术上讲,它是 generator expression .这就像一个列表推导式,但它是惰性求值的,不需要为中间列表分配内存。

为了完整起见,列表推导式如下所示:

tup = tuple([(element.foo, element.bar) for element in alist])

 

PS:attrgetter 并不快(alist 这里有一百万条):

In [37]: %timeit tuple([(element.foo, element.bar) for element in alist])
1 loops, best of 3: 165 ms per loop

In [38]: %timeit tuple((element.foo, element.bar) for element in alist)
10 loops, best of 3: 155 ms per loop

In [39]: %timeit tuple(map(operator.attrgetter('foo','bar'), alist))
1 loops, best of 3: 283 ms per loop

In [40]: getter = operator.attrgetter('foo','bar')

In [41]: %timeit tuple(map(getter, alist))
1 loops, best of 3: 284 ms per loop

In [46]: %timeit tuple(imap(getter, alist))
1 loops, best of 3: 264 ms per loop

关于python - 使用列表推导构建元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410119/

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