如何访问嵌套在dict中的元组切片?

时间:2019-01-12 16:21:31

标签: python python-3.x

我在这样的字典中嵌套了一个元组

record = {1: ('kg', '2003, 06, 05', 12)}
record[2] = ('kg', '2008, 06, 05',40)

我需要在字典中添加所有元组的所有kg值,但我不知道如何访问值12和40。

2 个答案:

答案 0 :(得分:1)

给出:

    record = {1: ('kg', '2003, 06, 05', 12)}
    record[2] = ('kg', '2008, 06, 05',40)

然后我们有

   record = {
       1: ('kg', '2003, 06, 05', 12),
       2: ('kg', '2008, 06, 05',40)
   }

因此您可以sum([t[-1] for t in record.values()])

values方法返回字典所有值的可迭代值。 sum只是将可迭代元素的所有元素相加。

此列表理解只是:“对于记录值中的每个元组,将元组的最后一个对象添加到列表中”

我们得到sum([12, 40]),所以它得到了52

编辑:使用-1总是返回最后一个对象,并且可以使用任意长度

答案 1 :(得分:0)

record: {1: ('kg', '2003, 06, 05', 12), 2: ('kg', '2008, 06, 05', 40)}
kg_sum = 0
  1. 调用 values()函数获取字典的所有值,该函数返回元组列表

record_values = record.values() # [('kg', '2003, 06, 05', 12), ('kg', '2008, 06, 05', 40)]

  1. 从record_values遍历所有值(元组),并访问元组的最后一个元素(必需的kg值)并将其添加到 kg_sum
for record_value in record.values():
    kg_value = record_value[-1]
    kg_sum += kg_value # equivalent to kg_sum = kg_sum + kg_value