python 如何提取元组元素并对它们进行操作?

kxkpmulp  于 2023-01-01  发布在  Python
关注(0)|答案(1)|浏览(296)
    • 输入:**
lits_tuple = [
("x1", "x2", "x3", "x4",    2),
("x1", "x4",    80),
("x4", "z1",    24)]

最后一个元素将始终是数字、浮点或整数

    • 预期结果:**
  • {" x1":82}#因为我们在第一个元组中具有值为2x1*,并且在元组2中具有值为80x1;二加八十=八十二
  • *{" x2 ":2}#因为x2仅在值为2**的第一个元组中
  • *{" x3 ":2}#因为x3仅在值为2**的第一个元组中
  • {" x4 ":106}#因为我们在第一个元组中具有值为2x4*,在元组2中具有值为80x4,在元组3中具有值为24x4; 2 + 80 + 24 = 106
  • {" z1 ":24}#因为z1只在最后一个元组中有值24*

我开始手动提取元组,看看我是否可以概括,但后来累了,睡着了。
x一个一个一个一个x一个一个二个x

c0vxltue

c0vxltue1#

您可以使用压缩语法*keys对每个keys,nb行进行迭代,这样所有第一个元素都收集在keys中,最后一个元素收集在nb
然后使用defaultdict递增每个值

from collections import defaultdict

values = [
    ("x1", "x2", "x3", "x4", 2),
    ("x1", "x4", 80),
    ("x4", "z1", 24)
]

results = defaultdict(int)

for *keys, nb in values:
    for key in keys:
        results[key] += nb

print(results)
# {'x1': 82, 'x2': 2, 'x3': 2, 'x4': 106, 'z1': 24}

相关问题