具有一个键和多个值的字典

问题描述 投票:0回答:3

我想知道我是否有办法在特定索引处提取值。假设我有一个与多个值关联的键。但是在我的字典中,我有多个键,每个键都有多个值。我想遍历键,然后遍历与该键关联的每个值。我希望能够提取第一个索引处的值并将其从第二个索引处的值中减去。

d= {108572791: [200356.77, 200358], 108577388: [19168.7, 19169]}

output for key 108572791 would be -1.33
output for key 108577388 would be -.03

我已经尝试阅读dict及其显然是如何工作的,您实际上无法对其进行索引。我只是想知道是否有办法解决这个问题。

for key, values in total_iteritems():
    for value in values:
       value[0]-value[1]:
python
3个回答
2
投票

编辑:

由于问题现在已经大相径庭,所以我将讨论新主题:

d= {108572791: [200356.77, 200358], 108577388: [19168.7, 19169]}
for i in d:
    print("Output for key ",str(i), "would be ",(d[i][1]-d[i][0]))

输出:

Output for key  108572791 would be  1.2300000000104774
Output for key  108577388 would be  0.2999999999992724

原始答案

是。如果要获得特定值,当您有一个dict包含list作为value时,则需要对列表中的索引进行寻址。一个例子是:

a = {'Name':['John','Max','Robert']}

这意味着:

print(a['Name']) 

输出:

['John','Max','Robert']

因为['名称']是列表:

for i in range(len(a['Name'])):
    print(a['Name'][i]

输出:

John #(Because it's the index 0)
Max #(Index = 1)
Robert #(Index = 2)

如果您想要一个特定值(例如'Max',它的索引= 1)

print(a['Name'][1]

输出:

Max

0
投票

取决于键中明显有多少个值,但这可以解决问题:

for x in d:
        print(x)
        print(d[x][0]-d[x][1])

0
投票

如果要使用索引,则可以使用元组列表。

d = [(108572791,[200356.77,200358]),(108577388,[19168.7,19169)]

for tuple in my_list:
   print(tuple[0]) 
   for value in tuple[1]:
       print(value) 
© www.soinside.com 2019 - 2024. All rights reserved.