diff --git a/knowledge.py b/knowledge.py index cf4915b47..de6e98150 100644 --- a/knowledge.py +++ b/knowledge.py @@ -12,14 +12,13 @@ # ______________________________________________________________________________ -def current_best_learning(examples, h, examples_so_far=None): +def current_best_learning(examples, h, examples_so_far=[]): """ [Figure 19.2] The hypothesis is a list of dictionaries, with each dictionary representing a disjunction.""" if not examples: return h - examples_so_far = examples_so_far or [] e = examples[0] if is_consistent(e, h): return current_best_learning(examples[1:], h, examples_so_far + [e]) diff --git a/knowledge_current_best.ipynb b/knowledge_current_best.ipynb index 757062587..5da492cd0 100644 --- a/knowledge_current_best.ipynb +++ b/knowledge_current_best.ipynb @@ -654,7 +654,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.7" } }, "nbformat": 4, diff --git a/tests/test_knowledge.py b/tests/test_knowledge.py index ab86089ae..eb76e01e6 100644 --- a/tests/test_knowledge.py +++ b/tests/test_knowledge.py @@ -59,27 +59,21 @@ def test_current_best_learning(): examples = restaurant hypothesis = [{'Alt': 'Yes'}] h = current_best_learning(examples, hypothesis) - values = [] - for e in examples: - values.append(guess_value(e, h)) + values = [guess_value(e, h) for e in examples] assert values == [True, False, True, True, False, True, False, True, False, False, False, True] examples = animals_umbrellas initial_h = [{'Species': 'Cat'}] h = current_best_learning(examples, initial_h) - values = [] - for e in examples: - values.append(guess_value(e, h)) + values = [guess_value(e, h) for e in examples] assert values == [True, True, True, False, False, False, True] examples = party initial_h = [{'Pizza': 'Yes'}] h = current_best_learning(examples, initial_h) - values = [] - for e in examples: - values.append(guess_value(e, h)) + values = [guess_value(e, h) for e in examples] assert values == [True, True, False]