python - python 中嵌套元组的元素明智操作

标签 python tuples

元组的按元素相加相当简单:

a = (1,2,3,4)
b = (2,4,6,8)
tuple(x+y for x,y in zip(a,b))

(3,6,9,12)

但是嵌套元组的逐元素加法更加复杂:

a = ((1,2),(3,4),(5,6))
b = ((2,4),(6,8),(10,12))
tuple(x+y for tup_a, tup_b in zip(a,b) for x,y in zip(tup_a,tup_b))

(3,6,9,12,15,18)

元组被展平。如何在保留元组结构的同时对固定元组执行元素加法?

这是所需的输出:

((3,6),(9,12),(15,18))

最佳答案

嵌套生成器表达式:

tuple(tuple(x + y for x, y in zip(tup_a, tup_b)) for tup_a, tup_b in zip(a, b))

演示:

>>> a = ((1,2),(3,4),(5,6))
>>> b = ((2,4),(6,8),(10,12))
>>> tuple(tuple(x + y for x, y in zip(tup_a, tup_b)) for tup_a, tup_b in zip(a, b))
((3, 6), (9, 12), (15, 18))

关于python - python 中嵌套元组的元素明智操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470454/

相关文章:

Python:如何模拟 datetime.utcnow()?

python - Python 中的 Selenium : Breaking a While Loop After an Onclick Attribute Changes

python - 如何在 Windows 中用 python 处理文件上传?

python - 函数返回元组而不是字符串

python - sys.stdout.write() 在 MRJOB 映射器中去哪里?

python - Visual Studio fatal error C1510 : Cannot load language resource clui. dll。安装 Pandas 时

tuples - number_in_month 练习(SML 函数从元组列表构建整数列表时出错)

python - 如何根据在 Python 中保持顺序的一个 bool 字段创建元组列表的所有排列

python - 将文本元组读入 Pandas 数据框

list - 从 Haskell 的列表中删除共轭元组