我有一个带有键和值(列表)的Python字典stuffs
;
{'car':['bmw','porsche','benz'] 'fruits':['banana','apple']}
我想从汽车中删除第一个值:bmw
,从水果中删除第一个值:banana
请问如何访问和删除它们?我已经尝试过.pop(index)
,但是没有用...
答案 0 :(得分:4)
您可以创建一个新字典,在其中使用[1:]
stuffs = {'car':['bmw','porsche','benz'], 'fruits':['banana','apple']}
stuffs_new = {k:v[1:] for k,v in stuffs.items()}
# {'car': ['porsche', 'benz'], 'fruits': ['apple']}
答案 1 :(得分:1)
一种简单的方法是使用for循环并循环访问字典中的每个项目,然后弹出第一个元素:
dictionary = {'car':['bmw','porsche','benz'], 'fruits':['banana','apple']}
for key in dictionary:
dictionary[key].pop(0)
或者,作为列表理解
dictionary = {'car':['bmw','porsche','benz'], 'fruits':['banana','apple']}
[dictionary[i].pop(0) for i in dictionary]
这些代码段在每个键('car'
和'fruits'
)上引用字典,然后继续在这些键索引的值上使用pop
。
编辑:
如果您不打算存储列表,请不要使用列表推导。如果要遍历较大的值,则由于存储了大量无用的值,可能会导致内存错误。例如在这种情况下:
[print(i) for i in range(9823498)]
这将存储9823498 None
个值*,而for循环则不会。但仍然可以达到相同的目的。
答案 2 :(得分:0)
你快到了。
使用以下任一方法:
del dict[key]
或
dict.pop(key, value)
第二个将删除,但也保留该项目作为退货