Я новичок в 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
. Так что я должен сделать, чтобы решить эту проблему?