假设我给出了一个词典列表,其中
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?
答案 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"]