首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除字典中每个键的第一项

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

Stack Overflow用户
提问于 2016-12-02 09:40:30
回答 5查看 4.9K关注 0票数 0

我有点被难住了,需要一些帮助。

所以我有一本这样的字典

代码语言:javascript
运行
复制
{'a':[1, 2, 3], 'b':[4, 5, 6]}

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

代码语言:javascript
运行
复制
{'a':[2, 3], 'b':[5, 6]}

我知道我应该使用pop函数,但是当有超过2个键和3个值时,它会让人感到困惑

EN

回答 5

Stack Overflow用户

发布于 2016-12-02 09:44:56

为此,您可以使用字典理解:

代码语言:javascript
运行
复制
>>> a = {'a':[1, 2, 3], 'b':[4, 5, 6]}
>>> {k: a[k][1:] for k in a}
{'a': [2, 3], 'b': [5, 6]}
票数 6
EN

Stack Overflow用户

发布于 2016-12-02 10:13:57

您可以通过结合使用map内置函数和lambda函数的一行程序来实现这一点。这种方法的另一个优点是不涉及复制(就像在切片解决方案中一样):

代码语言:javascript
运行
复制
doc = {'a':[1, 2, 3], 'b':[4, 5, 6]}
map(lambda v: v.pop(0), doc.values())

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

票数 1
EN

Stack Overflow用户

发布于 2016-12-02 11:06:30

这是另一个解决方案,

代码语言:javascript
运行
复制
    dict1={'a':[1, 2, 3], 'b':[4, 5, 6]}

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

for循环遍历字典中的值,这些值由‘didic1.values()’表示。值是一组列表,列表的'.remove()‘函数删除给定元素的第一个匹配项,所以如果您给它在列表中找到的第一个元素,它也会删除它。

希望这能对你有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40923429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档