【发布时间】:2020-06-29 09:38:21
【问题描述】:
我是 Python 新手,我正在使用 Python 3.7。所以,我试图让我的字典值等于集合,即dictionaryNew[kId] = setItem。所以基本上我希望每个kId(键)都有一个对应的设置行作为它的值。我使用 set 是因为 我不希望行中有重复值。
这是我下面代码中的一段:
setItem = set()
dictionaryNew = {}
for kId, kVals in dictionaryObj.items():
for index in kVals:
if (index is not None):
yourVal = 0
yourVal = yourVal + int(index[10])
setItem.add(str(yourVal))
print(setItem) #the output for this is correct
dictionaryNew[kId] = setItem
setItem.clear()
print(dictionaryNew)
当我打印setItem 时,结果打印正确。
setItem的输出:
{'658', '766', '483', '262', '365', '779', '608', '324', '810', '701', '208'}
但是当我打印dictionaryNew时,结果就像下面显示的那样。
dictionaryNew的输出:
{'12': set(), '13': set(), '17': set(), '15': set(), '18': set(), '10': set(), '11': set(), '14': set(), '16': set(), '19': set()}
我不希望输出是这样的。相反,我希望字典有一行带有其值的集合。但这只是在我尝试打印dictionaryNew 时打印空集。那么我应该怎么做才能解决这个问题呢?
【问题讨论】:
-
你能分享
dictionaryObj结构吗?我不确定它是什么 -
为什么:youvalue + 0 每次?
-
dictionaryObj有键:值对。所以基本上它有一个字符串作为键和一组字符串作为值。另外,我每次都使用 0,因为索引 [10] 处有增量编码。所以为了解码,我使用了这个公式。
标签: python python-3.x dictionary set