【发布时间】:2016-02-11 10:04:23
【问题描述】:
我正在尝试从一本使用 Python 的书中学习先验机器学习算法,作为学习的一部分,我目前遇到以下问题:
以下代码结构似乎可以正常工作:
Ck = [[1], [2], [3], [4], [5]]
for tranid in range(10):
for candidate in Ck:
print("Printing candidate value: ", candidate)
但是,以下方法不起作用:
Ck = [[1], [2], [3], [4], [5]]
Ck2 = map(frozenset, Ck)
for tranid in range(10):
for candidate in Ck2:
print("Printing candidate value: ", candidate)
当我将原始迭代的每个元素映射到一个frozenset 时,我注意到内部循环(“for Candidate in Ck2”)只执行一次。之后它永远不会执行。上面没有 freezeset 的代码正确地循环了内部循环 10 次。但是,使用 freezeset 映射后,我可以让内部循环只执行一次。
请帮我解决这个问题。这本书已经将可迭代的值映射到frozenset,因为他们不希望它对于算法的目的是可变的。我只是想照原样遵循它。
我在 Anaconda (Spyder) 上使用 Python 3.5.1。
请帮忙,因为我是 Python 和机器学习的新手。
感谢和问候, 马赫什。
【问题讨论】:
标签: python python-3.x set frozenset