如果键,值对存在于字典中,则跳过python

星际

我想使用collections.defaultdict(list)以下两个变量将其添加到字典中:这是两个变量:

score = [0, 5, 7, 7, 8, 7]
match = ['turtle', 'cat', 'horse', 'horse', 'dog', 'bear']

我想做的是删除字典中已经存在的键/值对。现在,我正在使用以下方法创建字典:

  scoring = collections.defaultdict(list)
  scoring[score].append(match)

但是,此方法给了我这样的字典:

dictionary = {0: ['turtle'], 5: ['cat'], 7: ['horse', 'horse', 'bear'], 8: ['dog']}

但是,我只希望马在字典中出现一次。无论如何,以这种方式可以防止在字典中添加相同的键/值对吗?

卡斯拉文

您可以使用aset()代替alist来保存值:

>>> coring = defaultdict(set)
>>> for i,j in zip(score, match):
...     coring[i].add(j)
... 
>>> coring
defaultdict(<type 'set'>, {0: set(['turtle']), 8: set(['dog']), 5: set(['cat']), 7: set(['horse', 'bear'])})
>>> 

由于set对象不会保留顺序,因此,如果您关心值的项的顺序,则可以使用anOrdereDict作为值容器:

>>> from collections import defaultdict, OrderedDict
>>> coring = defaultdict(OrderedDict)
>>> 
>>> for i,j in zip(score, match):
...     coring[i][j]=None
... 
>>> coring
defaultdict(<class 'collections.OrderedDict'>, {0: OrderedDict([('turtle', None)]), 8: OrderedDict([('dog', None)]), 5: OrderedDict([('cat', None)]), 7: OrderedDict([('horse', None), ('bear', None)])})
>>> 
>>> coring[7]
OrderedDict([('horse', None), ('bear', None)])
>>> coring[7].keys()
['horse', 'bear']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查值是否已存在于字典列表中?

检查给定键是否已存在于字典中并递增

DropColumn(如果存在于GORM中)

删除键(如果它们存在于地图的值中)

检查键是否存在于[Type:Type?]类型的字典中

jQuery:如果键存在于数组中,则获取值

检查值是否存在于集合或数组中,如果不存在,则将其添加

检查列值是否存在于字典[pandas]中

如何在Python中检查键是否存在于值中以及键中的值

查找键和值对是否存在于json中

将字典与其他字典进行比较,并仅选择存在于其他字典中的那些键

Python求和列表中的值(如果它存在于另一个列表中)

Python:比较列表中的值(如果存在于另一个列表中)

如果文件存在于python中,如何获取路径?

如何让乘法键全部存在于字典中?(蟒蛇)

删除字典值(如果它们存在于集合中)

检查键及其值是否存在于对象中

如果该值存在于第一列中,则从多维列表中检索键

PHP值存在于数组中

如果键已经存在于HashMap中,则添加新值

如果发布数据存在于数组回显键中

PHP-如果键存在于多维关联数组中,请返回其位置

jQuery 值存在于数组中

如果存在于 csv 文件的列中,则替换值

Python:如果值存在于字典中较长的键中,则从字典值列表中删除值

如果其值存在于 db 中,则显示表单

IsEnabled 如果值存在于其他列表中

如果键已存在于字典中,如何向其添加多个值(Python)

检查字典的键是否存在于 Kusto 的特定列中?