thiagowfx's avatar

Β¬ just serendipity πŸ€ (not just serendipity)

dict

β€’ 251 words β€’ 2 min β€’ updated

python
if __name__ == "__main__":
    d = {}
    assert len(d) == 0

    d["a"] = 1
    d["b"] = 2

    assert list(d.keys()) == ["a", "b"]
    assert list(d.values()) == [1, 2]
    assert list(d.items()) == [("a", 1), ("b", 2)]

    del d["b"]
    assert list(d.keys()) == ["a"]
    assert list(d.values()) == [1]
    assert list(d.items()) == [("a", 1)]

    try:
        del d["b"]
        assert False
    except Exception:
        ...

    d2 = {
            "c": 3
    }

    d.update(d2)

    assert list(d.keys()) == ["a", "c"]
    assert list(d.values()) == [1, 3]
    assert list(d.items()) == [("a", 1), ("c", 3)]

    assert "a" in d
    assert 1 not in d
    assert 1 in d.values()

    assert "b" not in d
    assert "c" in d

    assert d2.keys() <= d.keys()
    assert d2.keys() < d.keys()

    assert d2.items() <= d.items()
    assert d2.items() < d.items()

    d2 |= d
    assert d == d2
    assert d is not d2

    d2.clear()
    assert not d2

    assert d2.get('a', 'cc') == 'cc'
    try:
        assert d2.get('a')
        assert False
    except Exception:
        ...

    assert 'a' in d
    assert d.pop('a') == 1
    assert 'a' not in d
    d['a'] = 1
    assert 'a' in d
    assert d.popitem() == ('a', 1)
    assert len(d) == 1

    assert d.setdefault('a', 1)
    assert 'a' in d
    assert d['a'] == 1

    del d['a']
    d['a'] = 1
    d['a'] = 2
    assert d['a'] == 2

    # insert only if not already present
    del d['a']
    d.setdefault('a', 1)
    d.setdefault('a', 2)
    assert d['a'] == 1

    d.clear()
    d['a'] = 1

    a = {}
    a.update(d)
    assert a == d
    a.clear()

    a.update([('a', 1)])
    assert a == d

    assert list({chr(x): x for x in range(ord('a'), ord('a') + 26)}.items())[0] == (('a\
', 97))