删除字典中每个键的第一项

时间:2016-12-02 01:40:30

标签: python dictionary

我有点难过,希望得到一些帮助。

所以我有一本像这样的字典

{'a':[1, 2, 3], 'b':[4, 5, 6]}

我需要创建一个自动删除每个列表/键中第一项的函数,因此它应该成为

{'a':[2, 3], 'b':[5, 6]}

我知道我应该使用pop函数,但当有超过2个键和3个值的时候会有点混乱

5 个答案:

答案 0 :(得分:6)

你可以使用字典理解:

>>> a = {'a':[1, 2, 3], 'b':[4, 5, 6]}
>>> {k: a[k][1:] for k in a}
{'a': [2, 3], 'b': [5, 6]}

答案 1 :(得分:1)

使用map内置函数结合lambda函数,您可以使用单行实现此目的。这种方法的另一个优点是不涉及复制(如在切片解决方案中):

doc = {'a':[1, 2, 3], 'b':[4, 5, 6]}
map(lambda v: v.pop(0), doc.values())

这会对您的dict的每个值应用list.pop(0)

答案 2 :(得分:0)

您可以遍历字典的值并一次弹出一个。如果您需要进一步的功能或控制,可以将其放在一个函数中。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

s = pd.Series(np.random.lognormal(.001, .01, 100))
ax = s.cumprod().plot()
title = ax.set_title('My Log Normal Example', position=(.5, 1.02),
             backgroundcolor='black', color='white',
             verticalalignment="bottom", horizontalalignment="center")
title._bbox_patch._mutation_aspect = 0.04
title.get_bbox_patch().set_boxstyle("square", pad=11.9)
plt.tight_layout()
plt.savefig(__file__+".png")
plt.show()

答案 3 :(得分:0)

你可以遍历dict&拼接清单。

var1 = {'a':[1, 2, 3], 'b':[4, 5, 6]}

for element in var1:
    var1[element] = var1[element][1:]

答案 4 :(得分:0)

这是另一种解决方案,

    dict1={'a':[1, 2, 3], 'b':[4, 5, 6]}

    for item in dict1.values():
        item.remove(item[0])

for循环遍历由' dict1.values()'表示的字典中的值。值是一组列表,' .remove()' list的函数删除了给定元素的第一个匹配项,因此如果你给它列表中找到的第一个元素,它同样会删除它。

希望这很有用!