1

删除字典中的一些列表项

你好,我有一本字典:

phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}

假设我想从“电话”字典中删除 12 和 5。有没有办法使用“del”函数来做到这一点?

我知道如何做到这一点,使用 .remove()

phone["third"].remove(12)
phone["third"].remove(5)

但我想知道是否可以使用 del() 来做到这一点?谢谢你。

编辑:对于所有那些专注于“删除使用索引,删除使用确切值”的回复,我正在重新定义我的问题:

我想删除表示“电话”字典中第三个键值项的列表中的索引 1 和 2。我怎样才能做到这一点?

4

5 回答 5

3

您必须通过索引而不是值来执行此操作:

>>> phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}
>>> del(phone["third"][1:3])
>>> phone
{'second': 200, 'fourth': 400, 'third': [10, 38], 'first': 100}

这将删除列表中位置 1 和 2 的元素。

于 2013-05-04T16:34:05.063 回答
1

您可以使用del(),也可以通过过滤重新创建列表:

>>> phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}
>>> phone['third'] = [x for x in phone['third'] if x not in (12,5)]
>>> phone
{'second': 200, 'fourth': 400, 'third': [10, 38], 'first': 100}
于 2013-05-04T16:38:08.223 回答
0

您可以将 phone["third"] 视为一个列表,因为这是它的评估结果。例如,如果您知道要删除的项目的索引,您可以执行以下操作:

phone["third"][1:3]=[]

或者

del phone["third"][1:3]
于 2013-05-04T16:36:03.070 回答
0

访问电话字典的值,删除 List 的项目。

其他答案-尝试获取包含要更改的数据的项目(键,值)。从字典中删除它。修改此项的值(列表)。然后将其添加到字典

于 2013-05-04T16:33:38.140 回答
-1

http://docs.python.org/2/tutorial/datastructures.html#the-del-statement del 是一种按索引而不是值删除的方法,但是如果需要,您可以先搜索索引。如果要按值删除,最好使用 remove。

删除索引 1 和 2 处的元素

>>> phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}
>>> del phone["third"][1]
>>> del phone["third"][2]
>>> phone
{'second': 200, 'fourth': 400, 'third': [10, 5], 'first': 100}
于 2013-05-04T16:33:00.633 回答