如何访问字典列表的索引?

时间:2015-04-27 01:28:54

标签: python dictionary

假设我给出了一个词典列表,其中

dict1 = dict(a = 2, b = 5, c = 7)
dict2 = dict(c = 5, d = 5, e = 1)
dict3 = dict(e = 2, f = 4, g = 10)
list_of_dictionaries = [dict1, dict2, dict3]

我怎样才能找到最高指数(又名最新词典)的价值?

因此,如果我要编写一个方法来删除词典列表中的项目,请说我想从词典中删除c

我如何能够从第二个字典而不是第一个字典中删除c?

2 个答案:

答案 0 :(得分:1)

关键是通过反向索引(a_list[::-1])在列表中反转。 从那里一旦你发现任何符合要求的字典改变它并退出函数或循环 - 因此早期的return

此代码:

def get_last(bucket,key):
  for d in bucket[::-1]:
    if key in d.keys():
      return d[key]
  return None

def set_last(bucket,key,val):
  for d in bucket[::-1]:
    if key in d.keys():
       d[key] = val
       return

def pop_last(bucket,key):
  out = None
  for d in bucket[::-1]:
    if key in d.keys():
      return d.pop(key)

dict1 = {'a': 2, 'b': 5, 'c': 7}
dict2 = {'c': 5, 'd': 5, 'e': 1}
dict3 = {'e': 2, 'f': 4, 'g': 10}
list_of_dictionaries = [dict1, dict2, dict3]

print get_last(list_of_dictionaries ,'c')
set_last(list_of_dictionaries ,'c',7)
print list_of_dictionaries 
popped = pop_last(list_of_dictionaries ,'c')
print popped
print list_of_dictionaries

给出:

5
[{'a': 2, 'c': 7, 'b': 5}, {'c': 7, 'e': 1, 'd': 5}, {'e': 2, 'g': 10, 'f': 4}]
7
[{'a': 2, 'c': 7, 'b': 5}, {'e': 1, 'd': 5}, {'e': 2, 'g': 10, 'f': 4}]

答案 1 :(得分:0)

我不确定你的意思,但我想向你展示一些可能会有所帮助的事情:

首先,您的词典应如下所示:

dict1 = {"a" :2, "b" : 5, "c" :7}
dict2 = {"c" :5, "d" :5, "e" :1}
dict3 = {"e" :2, "f" :4, "g" :10}

然后你问了这个:“我怎样才能从第二个字典而不是第一个字典中删除c?”

你可以这样删除它:

del dict2["c"]