gpt4 book ai didi

python - 合并两个元组的元组

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:32 24 4
gpt4 key购买 nike

我有两个元组a = (('1',), ('2',))b = (('3',), ('4',))

我需要这样的输出

result = (('1',3',), ('2','4',))

我已经尝试将元组转换为列表并使用 zip 合并为单个元组 tuple(zip(list(a), list(b)))还有 tuple(zip(a,b)) 产生 ((('1',), ('3',)), (('2',), (' 4',))) 作为结果。

我应该怎么做才能获得预期的结果?我看到了元组的不变性,但我正在从另一个服务获取元组,我所能做的就是将获得的元组转换为列表以获得预期的输出。

最佳答案

Zipping 是正确的方法,但是你仍然必须将成对的元组展平;你可以将它们连接起来:

result = tuple(x + y for x, y in zip(a, b))

或者,在压缩之前展平您的ab 元组:

result = tuple(zip((v for t in a for v in t), (v for t in b for v in t)))

扁平化也可以用 itertools.chain() 完成,这可能更具可读性:

from itertools import chain

result = tuple(zip(chain(*a), chain(*b)))

演示:

>>> a = (('1',), ('2',))
>>> b = (('3',), ('4',))
>>> tuple(x + y for x, y in zip(a, b))
(('1', '3'), ('2', '4'))
>>> tuple(zip((v for t in a for v in t), (v for t in b for v in t)))
(('1', '3'), ('2', '4'))
>>> from itertools import chain
>>> tuple(zip(chain(*a), chain(*b)))
(('1', '3'), ('2', '4'))

关于python - 合并两个元组的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441763/

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