supportData = {('ELF'): 0.75, ('CAT'): 0.75, ('BAT', 'CAT', 'ELF'): 0.5, ('ARK', 'BAT'): 0.25, ('ARK', 'ELF'): 0.25, ('CAT', 'ELF'): 0.5, ('DOG'): 0.25, ('BAT', 'CAT'): 0.5, ('BAT', 'ELF'): 0.75, ('ARK'): 0.5, ('ARK', 'CAT'): 0.5, ('BAT'): 0.75}
L = [('ARK'), ('CAT'), ('CAT'), ('ELF'),('ARK', 'CAT'), ('BAT', 'ELF'), ('BAT', 'CAT'), ('CAT', 'ELF'),('BAT', 'CAT', 'ELF')]
for freqSet in L:
H = list(freqSet)
if len(H) == 1:
pass
else:
for conseq in H:
freqsetlist = list(freqSet)
freqsetlist.remove(conseq)
if len(freqsetlist) == 1:
conf = supportData[freqSet]/supportData[tuple(freqsetlist)[0]]
if conf >= 0.1:
print freqsetlist,'-->',conseq,'conf:',conf
else:
conf = supportData[freqSet]/supportData[tuple(freqsetlist)[:]]
if conf >= 0.1:
print freqsetlist,'-->',conseq,'conf:',conf
Output
KeyError: ('R','K')
有人能指出我为什么会犯这个错误吗?当len(freqsetlist)大于等于1时,似乎发生了错误。这是在计算具有3个元素的元组时
如果你想要的是一个不同的物体的表象,那么你将拥有一个不同的表象:
请注意,这意味着您将使用Python表示的对象作为程序的一部分,这是一个坏主意,您应该始终手动构建所需的内容,而不是尝试使用Python的表示,这是为了调试。在
编辑:逗号是Python表示元组的方式,因为括号表示操作的分组,而不是默认的元组。您可以创建自己的tuple子类,并根据需要更改
__repr__()
/__str__()
,但这将是非常无意义的(在__repr__()
的情况下是不规则的,因为它应该对对象求值)。在相关问题 更多 >
编程相关推荐