cython

Форк
0
/
set_item.pyx 
75 строк · 1.5 Кб
1
# mode: run
2
# tag: list, dict, setitem, delitem
3

4
def set_item(obj, key, value):
5
    """
6
    >>> set_item([1, 2, 3], 1, -1)
7
    [1, -1, 3]
8
    >>> set_item([1, 2, 3], -1, -1)
9
    [1, 2, -1]
10
    >>> set_item({}, 'abc', 5)
11
    {'abc': 5}
12
    >>> set_item({}, -1, 5)
13
    {-1: 5}
14
    >>> class D(dict): pass
15
    >>> set_item(D({}), 'abc', 5)
16
    {'abc': 5}
17
    >>> set_item(D({}), -1, 5)
18
    {-1: 5}
19
    """
20
    obj[key] = value
21
    return obj
22

23

24
def set_item_int(obj, int key, value):
25
    """
26
    >>> set_item_int([1, 2, 3], 1, -1)
27
    [1, -1, 3]
28
    >>> set_item_int([1, 2, 3], -1, -1)
29
    [1, 2, -1]
30
    >>> set_item_int({}, 1, 5)
31
    {1: 5}
32
    >>> set_item_int({}, -1, 5)
33
    {-1: 5}
34
    >>> class D(dict): pass
35
    >>> set_item_int(D({}), 1, 5)
36
    {1: 5}
37
    >>> set_item_int(D({}), -1, 5)
38
    {-1: 5}
39
    """
40
    obj[key] = value
41
    return obj
42

43

44
def del_item(obj, key):
45
    """
46
    >>> del_item([1, 2, 3], 1)
47
    [1, 3]
48
    >>> del_item([1, 2, 3], -3)
49
    [2, 3]
50
    >>> class D(dict): pass
51
    >>> del_item({'abc': 1, 'def': 2}, 'abc')
52
    {'def': 2}
53
    >>> del_item(D({'abc': 1, 'def': 2}), 'abc')
54
    {'def': 2}
55
    >>> del_item(D({-1: 1, -2: 2}), -1)
56
    {-2: 2}
57
    """
58
    del obj[key]
59
    return obj
60

61

62
def del_item_int(obj, int key):
63
    """
64
    >>> del_item_int([1, 2, 3], 1)
65
    [1, 3]
66
    >>> del_item_int([1, 2, 3], -3)
67
    [2, 3]
68
    >>> class D(dict): pass
69
    >>> del_item_int(D({-1: 1, 1: 2}), 1)
70
    {-1: 1}
71
    >>> del_item_int(D({-1: 1, -2: 2}), -1)
72
    {-2: 2}
73
    """
74
    del obj[key]
75
    return obj
76

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.